main 和 constructor 可以一起放在 class in Java 中吗

Can main and constructor be together in a class in Java

检查下面的代码:

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 class 对象
Main = new Main();

据我所知,这应该调用必须命名为 'Main' 的构造函数,因为 Class 被命名为 Main。现在这就是它对

执行的操作
Inside Orignal "Main" Method

但我已经创建了一个构造函数,它应该可以打印出文本。那么为什么不打印呢? class 中是否不允许使用 main 方法构造函数?

这不是构造函数,它是常规方法:

public void Main()
{
    System.out.println("Inside Duplicate Main");
}

由于您的 Main class 没有构造函数,编译器会生成一个默认构造函数并在 Main = new Main(); 执行时调用它。这就是为什么你看不到 "Inside Duplicate Main".

这是一个构造函数(注意没有 return 类型):

public Main()
{
    System.out.println("Inside Duplicate Main");
}    

从您的 Main 方法中删除 void,您将看到调用了您的构造函数。

它没有打印,因为您已经创建了一个名为 Main()void 返回方法,但为了成为构造函数,它应该是:

public Main() {
   System.out.println("Inside Duplicate Main");
}