Java之匿名对象

匿名对象的使用

1.理解:我们创建的对象没有显示的赋给变量名,即为匿名对象

2.特征:匿名对象只能调用一次

3.使用:当对象对方法仅进行一次调用的时候,就可以使用匿名对象进行调用

/**
 * 匿名对象的使用,根据代码来加深以下理解
 */
public class InstanceTest {
    public static void main(String[] args) {
        //1.一般创建对象,并调用方法,这里调用方法是同一个对象
        Phone phone = new Phone();
        phone.playGame();
        phone.sendEmail();
        System.out.println("--------------1.以上是一般对象---------------------");

        //2.创建匿名对象:new Phone() ,并使用匿名对象调用方法,下面new了多次,会产生多个对象
        new Phone().playGame();
        new Phone().sendEmail();
        new Phone().price = 2999;//匿名对象可以调用属性,但是没有意义
        new Phone().showPrice(); //结果0.0,因为与上面赋值2999无关,是两个不同的对象
        System.out.println("-----------------2.以上是匿名对象------------------");

        PhoneMall phoneMall = new PhoneMall();

        //3.一般对象使用
        phoneMall.show(phone);
        System.out.println("-----------------3.以上是一般对象使用------------------");

        //4.匿名对象的具体使用
        phoneMall.show(new Phone());
        System.out.println("-----------------4.以上是匿名对象的具体使用------------------");
    }


}
class PhoneMall{
    public void show(Phone phone){
        phone.sendEmail();
        phone.playGame();
    }
}

class Phone{
    double price;
    public  void sendEmail(){
        System.out.println("发送邮件");
    }
    public void playGame(){
        System.out.println("玩游戏");
    }
    public void showPrice(){
        System.out.println("手机价格为"+price);
    }
}

内存解析:理解匿名对象在内存中如何实现的

原文地址:https://www.cnblogs.com/king2/p/14488912.html