有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在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方法的类中不允许使用构造函数吗


共 (2) 个答案

  1. # 1 楼答案

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

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

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

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

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

    Main方法中删除void,您将看到构造函数被调用

  2. # 2 楼答案

    它不是打印,因为您创建了一个名为voidMain()返回方法,但为了成为构造函数,它应该是:

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