当前位置: 首页 > 面试题库 >

Java中的`new`关键字是否多余?

郭辉
2023-03-14
问题内容

我来自C
++,所以我不太了解Java的一项功能。我已经读过,new除原始元素外,所有对象都必须使用关键字创建。现在,如果编译器可以识别原始类型,并且不允许您创建一个不带构造函数的对象new,那么为什么根本没有关键字new呢?有人可以提供一个示例,说明两行代码,除了存在的new,相同,编译且具有不同的含义/结果之外,相同吗?

只是为了澄清我的意思是多余,并希望使我的问题更清楚。是否new添加任何东西?语言是否可以new通过构造函数表达而无需实例化对象?


问题答案:

方法和构造函数可以具有相同的名称。

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");
        }
    }
}

这种语言设计选择是否是一个好主意尚有待商,,但这就是它的工作方式。



 类似资料:
  • 问题内容: 在另一个问题中,用户指出该关键字使用很危险,并提出了不使用该对象创建对象的解决方案。我不相信这是真的,主要是因为我使用了Prototype,Scriptaculous和其他出色的JavaScript库,并且每个人都使用了关键字。 尽管如此,昨天我还是在DouglasCrockford在YUI剧院观看了一次演讲,他说的一模一样,他不再在代码中使用关键字(JavaScript上的Crock

  • 问题内容: 在JavaScript中的关键字可能会相当混乱首次遇到它的时候,人们往往会认为JavaScript是不是面向对象的编程语言。 它是什么? 它解决什么问题? 什么时候合适,什么时候不合适? 问题答案: 它做五件事: 它创建一个新对象。这个对象的类型就是 object 。 它将这个新对象的内部不可访问的 [[prototype]] (即 proto )属性设置为构造函数的外部可访问 原型

  • 本文向大家介绍谈谈JavaScript的New关键字,包括了谈谈JavaScript的New关键字的使用技巧和注意事项,需要的朋友参考一下 原型和闭包算是JavaScript中最常见,最难以理解,最容易被当做问题的两个部分,当然还有它们的延伸,如作用域链,继承等等吧,我最近也是各种看,各种翻,记录点自己的心得,写写总会让自己的理解更深一些。(跟标题的关系不大啦,就感慨句,每次总感觉自己懂了,再翻还

  • 问题内容: 我有一个发生异常的功能,例如 谢谢! 问题答案: 否,因为C#中没有检查过的异常 如果您试图记录引发的异常,请使用标准的xml文档

  • 问题内容: 我知道Java本身没有直接的等效项,但也许是第三方? 真的很方便。当前,我想实现一个迭代器,该迭代器生成树中的所有节点,这大约是带有yield的五行代码。 问题答案: 我知道的两个选项是2007年的Aviad Ben Dov的infomancers- collections库 和2008年的Jim Jimler的YieldAdapter库 (在另一个答案中也提到了)。 两者都允许您使用

  • 问题内容: 以下代码是做什么的: 构造函数在哪里,我想用新函数扩展Widget的“类” 。 什么是 关键词在那里做,如果它被省略了,会发生什么? 问题答案: WeatherWidget.prototype = new Widget; 该关键字调用构造函数,返回值分配给属性。(如果省略,除非添加了参数列表,否则将不会调用。但是,以这种方式调用可能是不可能的。如果它不是严格的模式代码并且实现是,则肯定