匿名对象的概述和应用
- A:什么是匿名对象?
- 没有名字的对象。
- B:匿名对象应用场景。
- 调用方法,仅仅只调用一次的时候。
a.这种匿名调用有什么好处?节省代码。
b.注意:调用多次的时候,不适用。匿名对象调用完毕即为垃圾,可以被垃圾回收器回收。
- 调用方法,仅仅只调用一次的时候。
C:案例演示,匿名对象应用场景。
class Demo_Car{ public static void main(String[] args){ Car c1 = new Car(); //创建有名字的对象。 c1.run(); //匿名对象调用方法,匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象 new Car().run(); } } class Car{ String color; //颜色 int num; //轮胎数 public void run(){ System.out.println(color + "..." + num); } }
1.匿名对象调用属性并赋值的场景
class Demo2_Car { public static void main(String[] args) { //匿名对象是否可以调用属性并赋值?有什么意义? /* 匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾 如果需要赋值还是用有名字对象 */ new Car().color = "red"; new Car().num = 8; new Car().run(); } } class Car { String color; //颜色 int num; //轮胎数 public void run() { System.out.println(color + "..." + num); } }
匿名对象调用属性及赋值图解:
2.匿名对象可以当作参数传递
class Demo3_Car {
public static void main(String[] args) {
//Car c1 = new Car();
/*c1.color = "red";
c1.num = 8;
c1.run();*/
//method(c1);
method(new Car());
//Car c2 = new Car();
//method(c2);
method(new Car()); //匿名对象可以当作参数传递
}
//抽取方法提高代码的复用性
public static void method(Car cc) { //Car cc = new Car();
cc.color = "red";
cc.num = 8;
cc.run();
}
}
class Car {
String color; //颜色
int num; //轮胎数
public void run() {
System.out.println(color + "..." + num);
}
}