注册 登录
编程论坛 JAVA论坛

询问一个基础知识,声明和new存在必然联系么?

邹阳 发布于 2019-11-09 10:20, 3033 次点击
  最近在阅读一些java代码时,发现在创建实例对象时,有些代码没有采用“类名 对象名 = new 类名();”的方式,而是直接“new 类名();”,所以,我想问一下这两种写法之间具体有什么区别吗?
4 回复
#2
pingc2019-11-11 13:52
直接new 的叫匿名对象,没有赋值语句和名字。
如果只用到一次,就可以使用匿名对象,也就是你说的直接new。
比如只打印一次随机数
System.out.println(new Random().nextInt(10));
如果要打印多次,创建对象就方便很多。
Random i = new Random();
System.out.println(i.nextInt(10));
System.out.println(i.nextInt(10));
System.out.println(i.nextInt(10));
#3
唐宋元明清乀2019-11-14 22:38
不好意思我不知道new关键字可以直接new 类名,我只知道new关键字可以创建对象,对类进行实例化和初始化的作用,new的过程中,Jvm会给后面的对象分配一个内存空间,也就是堆内存,
#4
唐宋元明清乀2019-11-14 22:49
public class DemoRun {
        
    public static void main(String[] args) {
        
        Zi zi = new Zi();
        zi.run();
        System.out.println("============");
        new tesgt(1);
        
        
    }
   
}





public class tesgt {
   
    public tesgt(int m) {
        System.out.println("tesgt构造器运行成功");
    }
   
    public void test() {
        System.out.println("test方法运行成功");
    }

}






区别就在于:new  类名()    只可以调用类本身的构造器,即本类的由系统分配的构造器的方法体任何修改,并且无法调用该类的任何方法。
而 类名 对象名 = new 类名(); 可以创建一个该类的实例,可以用该类的任何方法。
#5
纵横阳仔2019-11-15 11:39
new tesgt(1).text()
1