一,定义:
匿名对象就是对象的简化形式,即没有名字的对象。
对象: Car c1=new Car();
c1.run();
匿名对象:new Car().run();
二,匿名对象的两种使用情况:
1.当对对象的方法(对属性的调用没有意义)仅进行一次调用的时候使用匿名对象。 如果对一个对象进行多个成员的调用时,必须给这个对象起个名字。
new Car().run();//如果当对象使用匿名对象调用方法两次时,因为每次都要new对象,所以这是2个对象分别调用了run(),而不是一个对象调用了多方法。 new Car().run();
2. 匿名对象可以作为实际参数进行传递。
对象式:Car c1=new Car();
show(c1);
匿名对象式:show(new Car());
三, 对象和匿名对象的内存开辟:
1 class Car { 2 String color; //颜色 3 int num; //轮胎数 4 public void run() { 5 System.out.println(color + "..." + num); 6 } 7 } 8 public class Test { 9 public static void main(String[] args) { 10 Car c1 = new Car(); //创建有名字的类类型对象 11 c1.run(); 12 c1.run(); 13 14 new Car().run(); //匿名对象调用方法 15 new Car().run(); //匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象 16 17 //匿名对象是否可以调用属性并赋值?有什么意义? 18 // 匿名对象可以调用属性,但是没有意义,因为调用操作完后没有人引用就会变成垃圾被回收 19 20 new Car().color = "red"; 21 new Car().num = 8; 22 new Car().run(); 23 } 24 }