Java中的main和constructor可以放在一个类中吗
Posted
技术标签:
【中文标题】Java中的main和constructor可以放在一个类中吗【英文标题】:Can main and constructor be together in a class in Java 【发布时间】: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
的参数。
【参考方案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
,您将看到您的构造函数被调用。
【讨论】:
以上是关于Java中的main和constructor可以放在一个类中吗的主要内容,如果未能解决你的问题,请参考以下文章