提问者:小点点

为什么不能像函数一样调用构造函数?


下面的代码不起作用,因为编译器说函数antherNewclass()不存在?这是为什么?构造函数不只是一个函数吗?为什么构造函数不能在没有引用特定对象的情况下运行?

class AnotherNewClass
{

    public AnotherNewClass(){
        System.out.println("Hello World!!");
    }

    public AnotherNewClass(String arg){
        System.out.println("Hello World!!");
    }


    public static void main(String []args){
        AnotherNewClass("Hello World!!");//This is the offending code; where the compiler throws an error
    }

}

附言。从下面的一些评论中,我想澄清一下,我知道我没有使用new关键字,这个问题的目的是强调函数和构造函数之间的区别(没有“新”就不能称之为“新”)


共3个答案

匿名用户

可以,但是您需要< code>new关键字。

new AnotherNewClass("Hello World!!");

请注意,这不仅仅是调用构造函数。这正是您需要< code>new关键字的原因。< code>new关键字将在堆上分配内存,以容纳您的类的对象。但是那个内存还没有包含这样一个对象。然后构造函数初始化那块内存。这就是为什么你不想使用构造函数作为常规函数。

匿名用户

使用构造函数的目的是在Java中初始化对象

不能直接调用构造函数;当 new 关键字创建对象时,将隐式调用它们。可以直接在已使用 new 创建的对象上调用方法。

所以对你的问题,我的答案是,它们不可能是,因为它们不应该是,这就是它是如何被设计的。你可以进一步深入阅读当我们说< code>new Class()时会发生什么,你就会知道实际的原因。

匿名用户

1-构造函数用于实例化类,这里你做错了。应该是

new AnotherNewClass("Hello World!!");

看一下这个问题有很好的解释。

2 -在Java中,我们说方法而不是函数。