【问题标题】:Can main and constructor be together in a class in JavaJava中的main和constructor可以放在一个类中吗
【发布时间】:2015-09-17 00:09:38
【问题描述】:

检查以下代码:

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

但我创建了一个构造函数,它应该打印出文本。那么为什么不打印呢?在具有主要方法的类中不允许构造函数吗?

【问题讨论】:

  • public void Main() 不是构造函数。这是一个 void 方法,没有名为 Main 的参数。

标签: java class methods constructor main


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-30
      • 2011-02-02
      • 2023-02-20
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2019-12-12
      • 2018-01-01
      相关资源
      最近更新 更多