面向对象-------------匿名对象(六)

1.什么是匿名对象
    * 没有名字的对象
2.匿名对象应用场景
    * a:调用方法,仅仅只调用一次的时候。
        * 那么,这种匿名调用有什么好处吗?
            * 节省代码
        * 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
    * b:匿名对象可以作为实际参数传递

匿名对象与有名字的对象的区别:

匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象   


class Demo2_Car {
	public static void main(String[] args) {
		/*Car c1 = new Car();			//创建有名字的对象
		c1.run();
		c1.run();

		new Car().run();			//匿名对象调用方法
		new Car().run();	*/		//匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象	
	
	}
}

class Car {
	String color;			//颜色
	int num;				//轮胎数

	public void run() {
		System.out.println(color + "..." + num);
	}
}

匿名对象是否可以调用属性并赋值?有什么意义?

匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾.如果需要赋值还是用有名字对象


class Demo2_Car {
	public static void main(String[] args) {
		/*Car c1 = new Car();			//创建有名字的对象
		c1.run();
		c1.run();

		new Car().run();			//匿名对象调用方法
		new Car().run();	*/		//匿名对象只适合对方法的一次调用,因为调用多次就会产生多个对象,不如用有名字的对象	
	
		//匿名对象是否可以调用属性并赋值?有什么意义?
		/*
		匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾
		如果需要赋值还是用有名字对象
		*/
		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);
	}
}

匿名对象当做参数

class Demo3_Car {
	public static void main(String[] args) {
		//Car c1 = new Car();//地址值
		/*c1.color = "red";
		c1.num = 8;
		c1.run();*/
		//method(c1);

		method(c1);

		//Car c2 = new Car();
		//method(c2);
		method(new Car());		//匿名对象可以当作参数传递
	}

	//抽取方法提高代码的复用性
	public static void method(Car cc) {	//Car cc = new Car();  我这个方法 声明的是 我要的是Car对象
		cc.color = "red";
		cc.num = 8;
		cc.run();
	}
}

class Car {
	String color;			//颜色
	int num;			//轮胎数

	public void run() {
		System.out.println(color + "..." + num);
	}
}

猜你喜欢

转载自blog.csdn.net/mqingo/article/details/81903469