use*_*841 12 java syntax types
实例化对象时,为什么要指定该类两次?
OddEven number = new OddEven();
Run Code Online (Sandbox Code Playgroud)
你为什么不能说出来number = new OddEven();?当我声明一个字符串时,我只说String一次:
String str = "abc";
Run Code Online (Sandbox Code Playgroud)
实际上,我的问题不是"为什么你这样做" - 显然,你这样做是因为你必须 - 但是,为什么创作者选择让Java语法像这样工作呢?
我的想法是:
Jim*_*son 44
因为你可以这样做:
Superclass x = new Subclass();
Run Code Online (Sandbox Code Playgroud)
引用的类型可以是要声明的实际对象的超类,因此您需要同时指定它们.例如,你可以这样做:
List<String> stringList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
您的程序与实现List的对象交互,而您不关心实现.
看似冗余的类型名称的原因是您正在执行两个单独的操作,每个操作都要求您指定一个类型.
在左侧,您将声明具有特定类型的变量(存储位置).在右侧,您将创建具有特定类型的新对象.中间的"="会引起您创建的新对象的引用,该对象将放置在您创建的存储位置中.
每侧的类型不必相同.例如,这是合法代码:
Object number = new OddEven();
Run Code Online (Sandbox Code Playgroud)
关键字String仅在第二个示例中显示一次的原因是String类型隐含在右侧,因为"xxx"是String常量.它只是简写:
String string = new String("xxx");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1932 次 |
| 最近记录: |