zoukankan      html  css  js  c++  java
  • 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);
        }
    }

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

  • 相关阅读:
    关于一个单机游戏发行的一些见解
    怎么租借电话号码
    NUMA架构的优缺点
    Windows 安装PostgreSQL
    Oracle查询当前用户下的所有表及sqlplus 设置 列宽
    Xshell调整终端显示的最大行数(缓冲区)
    PostgreSQL 索引膨胀
    Linux 清空缓存
    load多个数据文件的yaml
    Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)
  • 原文地址:https://www.cnblogs.com/king2/p/14488912.html
Copyright © 2011-2022 走看看