下面的代码不起作用,因为编译器说函数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关键字,这个问题的目的是强调函数和构造函数之间的区别(没有“新”就不能称之为“新”)
可以,但是您需要< code>new关键字。
new AnotherNewClass("Hello World!!");
请注意,这不仅仅是调用构造函数。这正是您需要< code>new关键字的原因。< code>new关键字将在堆上分配内存,以容纳您的类的对象。但是那个内存还没有包含这样一个对象。然后构造函数初始化那块内存。这就是为什么你不想使用构造函数作为常规函数。
使用构造函数的目的是在Java中初始化对象
不能直接调用构造函数;当 new
关键字创建对象时,将隐式调用它们。可以直接在已使用 new 创建的对象上调用方法。
所以对你的问题,我的答案是,它们不可能是,因为它们不应该是,这就是它是如何被设计的。你可以进一步深入阅读当我们说< code>new Class()时会发生什么,你就会知道实际的原因。
1-构造函数用于实例化类,这里你做错了。应该是
new AnotherNewClass("Hello World!!");
看一下这个问题有很好的解释。
2 -在Java中,我们说方法而不是函数。