我来自C++,所以有一个我不太了解的java特性.我已经读过必须使用关键字创建所有对象new,但基元除外.现在,如果编译器可以识别基本类型,并且不允许您创建一个没有调用其构造函数的对象new,那么拥有该关键字的原因是什么new?有人可以提供两行代码的例子,除了存在new,编译和具有不同的含义/结果相同吗?
只是为了澄清多余的意思,希望能让我的问题更加清晰.不new添加任何东西?语言是否可以在没有new通过构造函数实例化对象的情况下表达?
art*_*tol 47
方法和构造函数可以具有相同的名称.
public class NewTest {
public static void main(final String[] args) {
TheClass();
new TheClass();
}
static void TheClass() {
System.out.println("Method");
}
static class TheClass {
TheClass() {
System.out.println("Constructor");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这种语言设计选择是否是一个好主意是有争议的,但这是它的工作方式.
ste*_*vls 14
信不信由你,需要使用new构造函数是一个命名空间.以下编译就好了:
public class Foo {
public Foo() {}
public void Foo() {}
}
Run Code Online (Sandbox Code Playgroud)
我现在不知道为什么 java语言设计者决定将new语句添加到java语言中,但是,我不想错过它.即使如果它可能是多余的,如果它没有被允许给类,方法和字段的名称相同,像其他人一样在他们的答案都已经显示:
因为 - 它极大地提高了可读性.每当我读到这个new陈述时,我立即意识到一个新的对象诞生了.
| 归档时间: |
|
| 查看次数: |
3866 次 |
| 最近记录: |