什么是匿名对象?
匿名对象是对象的简化形式
举例如下:
class Man
{
String name="java";
int age=200;
void say()
{
System.out.println("我会说中文");
}
}
引用以上代码
匿名对象为:
new Man();//这就是个匿名对象
非匿名对象为:
Man a=new Man();//起名为a,非匿名对象
a.age=20;
上面两步可以简化为:new Man().age=20;
那么
new Man().age=20;
new Man().run();
这两句代码的内存图如下:
匿名对象用于属性没意义,而用于方法有意义,如下:
//属性
new Man().age=20;
new Man().name="java。。。";
//方法
new Man().run();
为什么说匿名对象用于属性没意义,而用于方法有意义呢?因为属性调用完后就没用了,像垃圾一样就丢弃了,用不上,而方法用完仍有用
匿名对象的使用方法
Man m=new man();
m.age=20;
m.run();
与
new Man().run();
没多少区别,但是代码写的多了区别就多了;
使用方法一:
当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化;
如果对一个对象进行多个成员调用,必须给这个对象起个名字。
使用方法二:
可以将匿名对象作为实际参数进行传递。
//需求: 对人进行改造,将名字name=“Java”改为name=“Java ”,年龄age=1 。
class Man
{
String name="java";
int age=200;
void say()
{
System.out.println("我会说中文");
}
Man a=new Man();
show (a);
//上面这两句也可以写为:show (new Man() );
}
public static void show(Man a)
{
a.age=1;
a.name="Java";
a.run();
}