java - new + 类名,一定需要申明一个对象吗?
巴扎黑
巴扎黑 2017-04-18 10:53:33
[Java讨论组]
public class CodeBlock02
{
    {
      System.out.println("第一代码块");    
    }
    
    public CodeBlock02()
    {
        System.out.println("构造方法");
        }
        
        {
          System.out.println("第二构造块");
      }
   public static void main(String[] args) 
    {
          new CodeBlock02();
          new CodeBlock02();
          new CodeBlock02();
           
    }
}    

在这里, new CodeBlock02(); 或者换成 CodeBlock02 code = new CodeBlock02();
他们是一样的吗!

巴扎黑
巴扎黑

全部回复(3)
PHPz

你需要理解 java 的引用

CodeBlock02 code = new CodeBlock02();

左边这个叫做 CodeBlock02 类型的变量

右边这个叫做 CodeBlock02 类型的对象

你也可以让这个变量依次指向两个类型相同的不同对象。

CodeBlock02 code;
CodeBlock02 code1 = new CodeBlock02();
CodeBlock02 code2 = new CodeBlock02();
code = code1;
//code.doSomething(); 相当于 code1.doSomething();
code = code2;
//code.doSomething(); 相当于 code2.doSomething();

你甚至可以让这个类型的变量指向这个类型的子类的对象:

MyClass m = new SubMyClass(); //SubMyClass 继承于 MyClass

还可以这样直接在 new 出来的对象上调用方法:

new CodeBlock02().doSomething();
天蓬老师

两个都是声明对象 楼主问的应该是赋值

如果后面不对这个值继续操作的话 赋不赋值都是一样的

new CodeBlock02() // 声明了之后不赋值,没有办法后续对这个对象继续操作
CodeBlock02 code = new CodeBlock02(); // 把声明的对象赋值给一个变量,可以进行后续操作

PHPz

左边的是对象的引用变量,右边的是在内存实际分配的对象。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号