zoukankan      html  css  js  c++  java
  • 牛客网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:   两个匿名对象永远都不可能是同一个对象。
     

  • 相关阅读:
    第八届极客大挑战 Web-php绕过
    第八届极客大挑战 Web-故道白云&Clound的错误
    IMDB-TOP_250-爬虫
    任意角度图片旋转
    图片处理代码
    C#获取获取北京时间多种方法
    STL vector用法介绍
    C++ 用libcurl库进行http通讯网络编程
    CString 使用方法
    A星算法(游戏寻路算法)的C++实现(转)
  • 原文地址:https://www.cnblogs.com/zlslch/p/7576208.html
Copyright © 2011-2022 走看看