美文网首页
匿名对象

匿名对象

作者: UlissesJr | 来源:发表于2018-10-14 14:00 被阅读19次

A:什么是匿名对象
     没有名字的对象

B:匿名对象的应用场景

  • 调用方法 仅仅只调用一次的时候
         这种方法的好处是可以节省代码
        注意:多次调用的时候不适合。匿名对象调用完毕就是垃圾,可以被垃圾回收期回收。
  • 匿名对象可以作为试剂参数传递

C:应用场景演示

public class Demo2_Car {
    public static void main(String[] args){
        Car c1 = new Car();   //创建有名字的对象
        c1.run();
        c1.run();

        new Car().run();  //匿名对象调用方法 每次调用都必须new.
        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
null...0
null...0
null...0
null...0

其在内存中的形式如下图所示:



因为new Car().color =“red” 之后,内存地址没有被调用,所有直接被垃圾回收机制清除。

结论:匿名对象可以调用属性,但是没有意义。如果需要赋值,还是用有名字的对象。

  • 匿名对象可以当做参数传递的示例
public class Demo2_Car {
    public static void main(String[] args) {
        //如果要创建相同的十辆车的对象,则代码很繁琐,复用性差。
        Car c1 = new Car();
        c1.color = "red";
        c1.num = 8;
        c1.run();

        Car c2 = new Car();
        c2.color = "red";
        c2.num = 8;
        c2.run();

        //有名字对象传参
        Car c3 = new Car();
        method(c3);

        //匿名对象传参
        method(new Car()); 
        //这一步相当于把new Car()的地址值赋值给了cc。相当于Car cc = 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
red...8
red...8
red...8

相关文章

  • Java之匿名对象

    匿名对象说明 匿名对象的使用

  • 匿名对象

    匿名对象:没有引用类型变量指向的对象称为匿名对象。 1 匿名对象要注意的事项: 我们一般不会给匿名对象赋予属性值(...

  • 匿名对象

    什么是匿名对象? 没有引用类型变量指向的对象就是匿名对象,匿名对象使用过一次之后就成了垃圾对象 匿名对象需要注意问...

  • 面向对象语法理解

    匿名对象 匿名对象的概念 匿名对象,一个没有变量取接收的对象 匿名对象的作用 1.只是使用一次(调用一次普通的方法...

  • 08.匿名对象的概述和应用场景

    匿名对象定义&使用 匿名对象即无名对象,直接使用new关键字来创建对象

  • 匿名对象

    A:什么是匿名对象 没有名字的对象 B:匿名对象的应用场景 调用方法 仅仅只调用一次的时候 这种方法的好处是可以节...

  • 匿名对象

    没有引用类型变量指向的对象称为匿名对象。 匿名对象的主要作用:简化书写 匿名对象主要用于两种场景: 1.如...

  • 匿名对象

    核心代码: 邮箱:ithelei@sina.cn 技术讨论群:687856230 GoodLuck

  • 匿名对象

    1.匿名对象就是没有名字的对象,如果程序中只是用一次该对象,就可以使用匿名对象的方式 引用传递 1.范例 clas...

  • 匿名对象

    在Java中有些类创建之后就是调用了某个方法一次,之后再也不使用,这样会导致资源浪费,以及代码的臃肿Java提供了...

网友评论

      本文标题:匿名对象

      本文链接:https://www.haomeiwen.com/subject/kgezaftx.html