zoukankan      html  css  js  c++  java
  • java面对对象-匿名对象

     匿名对象:

      即没有名字的对象。

    复制代码
    public class Test {
        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);
        }
    }
    复制代码

    匿名对象的使用方法:

    1. 当对象对方法仅进行一次调用的时候,就可以简化成匿名对象。

    如一个 对象需要进行调用方法2次,用匿名对象的

    new Car().run()

    new Car().run()

    这是2个对象分别调用了run(),不是一个对象调用了多方法。

    2. 匿名对象可以作为实际参数进行传递。

    public static void show(Car c)
    {
    //......
    }
    show(new Car());

    内存分析:

    new Car().num =5;
    new Car().color = "green";
    new Car().run();

    匿名对象执行完毕后,由于再无引用引用之,Java的自动回收机制会视作垃圾处理

  • 相关阅读:
    [2019 CSP-S赛前集训] [CF1037D] Valid BFS?
    [2019 CSP-S赛前集训] [洛谷P1613] 跑路
    [2019 CSP-S赛前集训] [洛谷P1967] 货车运输
    [洛谷博客] 我的洛谷博客内容搬运
    终于开通了博客
    Qt Creator 添加arm版本的qmake时的问题
    U盘挂载问题
    段错误解决办法
    printf %m
    使用pthread_create()创建线程
  • 原文地址:https://www.cnblogs.com/wuqiance/p/11605012.html
Copyright © 2011-2022 走看看