打赏

牛客网Java刷题知识点之匿名对象、匿名对象的内存结构图、匿名对象的应用场景、匿名对象的使用、匿名对象的简单例子、匿名对象要注意的事项

 

 

  不多说,直接上干货!

 

 

什么是匿名对象?

  答: 没有名字的实体,也就是该实体没有对应的变量名引用。

     没有名字的实体,没有引用类型变量指向的对象称作为匿名对象。

   正常的,是

    Car car = new Car();

  匿名对象的,是

    new Car();

 

 

 

匿名对象的简单演示

new Car().run();

 

 

 

 

匿名对象的内存结构图

   1:new Car().num=5;

        2:new Car().clor="blue";

        两个new 是两个不同的对象,在堆内存中有不同的空间,相互不相互干扰。

 

 

 

 

匿名对象的应用场景

   1:    当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化

                 为什么只对方法,而不调用属性呢?因为匿名对象调用属性没意义。

                 如果对象要多成员进行多次调用,必须给对象起个名字。不能再使用匿名对象

        2:    匿名对象可以实际参数进行传递

 

 

 

 

 

匿名对象的使用

        1:  当只使用一次时可以使用匿名对象。执行完毕到 ; 后该匿名对象就变成了垃圾。

               new Car().run();

        2:   执行方法时,可以将匿名对象作为实际参数,传递进去。

 

 

 

 

匿名对象的简单例子

//学生类  
class Student{  
      
    int num; //学号  
    String name; //名字  
    public void study(){  
        System.out.println("好好学习天天向上");  
    }  
}  
  
class myClass{  
  
    public static void main(String[] args)   
    {  
        //创建一个学生对象  
        //Student s = new Student();  
        //new Student().name = "小明"; //匿名对象   
        //System.out.println(Student().name); //null  
        System.out.println(new Student() == new Student()) ;  // "==" 用于引用类型变量时,比较的是内存地址。判断两个 对象是否为同一个对象  
          
        需求: 调用Student的study方法。  
          
        Student s = new Student();  
        s.study();  
        //创建匿名对象  
        new Student().study();  
  
    }  
}  

 

 

 

 

 

 

 

匿名对象要注意的事项:

  1:   我们一般不会给匿名对象赋予属性值,因为永远无法获取到。(因为是没有引用变量指向那个对象
  2:   两个匿名对象永远都不可能是同一个对象。
 

 

posted @ 2017-09-22 17:57  大数据和AI躺过的坑  阅读(399)  评论(0编辑  收藏  举报