面向对象-匿名对象

         面向对象-匿名对象

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.匿名对象概述

1>.什么是匿名对象

  匿名对象是对象的简化形式,因为它没有对象名称。

2>.匿名对象两种使用情况

  对象方法仅进行一次调用时,多次调用不适合。
  匿名对象可以作为实际参数进行传递。

3>.使用匿名对象的好处

  简化写法,不必定义变量指向对象引用地址。
  对象用完之后就变成垃圾内存,可以被垃圾回收器回收。

  温馨提示:
    当对象堆放啊只进行一次调用的时候,可以使用匿名对象堆代码进行简化。
    如果对象要堆成员变量进行多次调用,必须给对象起一个名字,不能再使用匿名对象。

 

二.匿名对象案例

/**
 * @author 尹正杰
 */
public class CarDemo2 {
    
    public static void main(String[] args) {
        /*
         *    下面一行代码是正常使用类的方式,需要使用一个变量指向在堆内存中实例对象的引用地址。
         *     这种方式之创建了一个对象,而且在栈内存中保存了堆内存对象的引用地址,故可以被多次调用。
         */
        Car c1 = new Car();
        
        c1.run();
        c1.color = "红色";
        c1.tyreNumber = 5;
        c1.run();
        
        System.out.println(c1);
        
        /*
         *     下面三行写法都是匿名对象,分别创建了3个对象。
         *     针对匿名对象,可以调用对象中的方法,但是不建议调用对象中的熟悉,因为这样是没有意义的,匿名对象只能被调用一次。
         */
        new Car().run();
        new Car().tyreNumber = 4;
        new Car().run();
        
        //将匿名函数作为参数传递
        myMethod(new Car());
    }
    
    public static void  myMethod(Car c) {
        c.color = "蓝色";
        c.tyreNumber = 4;
        c.run();
    }
}

 

原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12230042.html