面向对象(匿名对象的概述与应用)

Posted happystudyhuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象(匿名对象的概述与应用)相关的知识,希望对你有一定的参考价值。

什么是匿名对象?

  • 没有名字的对象

匿名对象应用场景

  • 调用方法,仅仅只调用一次的时候

  节省代码

  注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收

  • 匿名对象可作为实际参数传递

 

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

 

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

匿名对象可以调用属性,但是没有意义,因为调用后就变成垃圾

如果需要赋值还是用有名字对象

public class Test05 {
    public static void main(String[] args) {
//        Car c1 = new Car();//创建有名字的对象
//        c1.run();
//        c1.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);
    }
}

运行结果:null车运行0

 

匿名对象作为实际参数传递实例:

public class Test06 {
    public static void main(String[] args) {
        method(new Car());//匿名对象可以当作参数传递
    }
    //抽取方法提高代码的复用性
    public static void method(Car cc) {
        cc.color = "red";
        cc.num = 8;
        cc.run();
    }

}

class Car{
    String color;
    int num;
    
    public void run() {
        System.out.println(color + "车运行" + num);
    }
}

运行结果:red车运行8

以上是关于面向对象(匿名对象的概述与应用)的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象(staticfinal匿名对象内部类包修饰符代码块)

面向对象基础——构造方法与匿名对象

面向对象匿名内部类

Java学习 -- 面向对象概述与封装性

Java学习 -- 面向对象概述与封装性

Java——面向对象进阶(final关键字,static关键字,匿名对象,内部类,包的声明与访问,四种访问修饰符,代码块)