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");
}
检查下面的代码:
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");
}