为什么Java有new?

33 浏览
0 Comments

为什么Java有new?

这个问题在这里已经有了答案:

可能是重复问题:

为什么C#和Java要使用“new”操作符?

为什么Java要使用new关键字?为了创建一个类型为A的对象,我必须输入A a = new A()

Java没有堆栈分配,那么为什么不能简化为A a = A()

admin 更改状态以发布 2023年5月25日
0
0 Comments

你提出的语法建议中有一个明显的缺陷,如下所示:

class A {}
class B extends A {
    public A A() { return new B() }
    public A foo() { return A(); } //ERK            
}

方法foo中的上述代码应该执行命名为A()的方法还是构造函数A

当然,你可以使用静态导入来实现所需的某些功能:

public class A {
    public static A A() { return new A(); }
}

可以使用import static my.stuff.A.*将其引入作用域。

0
0 Comments

因为C++这么做了,我猜Java的初衷是看上去 superficially 像C++,但语言要简化和整合。

无论如何,你在这里遇到了一个问题:

class Foo {
   private static void A() {
     System.out.println("method");
   }
   public static void main(String[] args) {
     A();
   }
}
class A {
  public A() {
    System.out.println("ctor");
  }
}

这里应该发生什么?构造函数 ctor 还是方法 method?

0