在Java中,main和constructor可以一起在一个类中吗
检查以下代码:
import Shashwat.TestJava;
public class Main extends TestJava {
public static void main(String s[]) {
System.out.println("Inside Orignal \"Main\" Method");
Main m = new Main();
}
public void Main() {
System.out.println("Inside Duplicate Main");
}
}
现在的重点是,当我执行程序时,这一行会运行
System.out.println("Inside Orignal \"Main\" Method");
之后,我使用
Main = new Main();
据我所知,这应该调用构造函数,该构造函数必须命名为“Main”,因为类名为Main。这就是它执行的目的
Inside Orignal "Main" Method
但我已经创建了一个构造函数,它应该打印文本。那为什么不打印呢?在具有main方法的类中不允许使用构造函数吗
# 1 楼答案
这不是构造函数,而是常规方法:
由于主类没有构造函数,编译器会生成一个默认构造函数,并在执行
Main = new Main();
时调用它。这就是为什么你看不到"Inside Duplicate Main"
这是一个构造函数(注意没有返回类型):
从
Main
方法中删除void
,您将看到构造函数被调用# 2 楼答案
它不是打印,因为您创建了一个名为
void
的Main()
返回方法,但为了成为构造函数,它应该是: