java的main方法一定要写在public修饰的类里吗?怎么验证?

JavaKuzz 2017-09-19 09:51:02
程序如下,Eclipse中,在Test类里右键没有run java application!!

public class DanLiModel {
private static DanLiModel danLi;

private DanLiModel() {
};

public static DanLiModel getDanLi() {
if (danLi==null) {
danLi=new DanLiModel();
}
return danLi;
}
}
class Test{
public static void main(String[] args) {
DanLiModel d1=DanLiModel.getDanLi();
DanLiModel d2=DanLiModel.getDanLi();
System.out.println(d1=d2);
}
}
...全文
1102 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaKuzz 2017-09-20
  • 打赏
  • 举报
回复
引用 6 楼 miaoch 的回复:
[quote=引用 2 楼 shijing266 的回复:] main方法是JVM(java虚拟机)自动调用 JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,所以mian方法需要public修饰, main方法所在的类也需要public修饰符。 另外由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。 JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,既需用void修饰。 至于main方法的参数String[ ] arg我们现在已经很少有机会去用它了,它用于在接受命令行传入的参数 这段知识如果你看了《Thinking in Java》 里面有一段关于main方法的,那么你就能懂
虽然我以前也这么认为,但是main方法真的和public没有什么关系。public只是让这个类对其他的类公开。而你要调用这个类的main方法,或者说java这个class,和这个类是不是公开的好像没有什么关系。一个很简单的例子,一个private static class Inner的内部类。我们也可以通过 java Outer$Inner去执行它[/quote] 你是正解!
miaoch 2017-09-20
  • 打赏
  • 举报
回复
引用 2 楼 shijing266 的回复:
main方法是JVM(java虚拟机)自动调用 JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,所以mian方法需要public修饰, main方法所在的类也需要public修饰符。 另外由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。 JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,既需用void修饰。 至于main方法的参数String[ ] arg我们现在已经很少有机会去用它了,它用于在接受命令行传入的参数 这段知识如果你看了《Thinking in Java》 里面有一段关于main方法的,那么你就能懂
虽然我以前也这么认为,但是main方法真的和public没有什么关系。public只是让这个类对其他的类公开。而你要调用这个类的main方法,或者说java这个class,和这个类是不是公开的好像没有什么关系。一个很简单的例子,一个private static class Inner的内部类。我们也可以通过 java Outer$Inner去执行它
miaoch 2017-09-20
  • 打赏
  • 举报
回复
miaoch 2017-09-20
  • 打赏
  • 举报
回复
在eclipse中能运行的。 只要你打开Run Configurations,新建一个路径就行了,写在public类里能自动帮你识别。不是public的就得这么做了
枫醉秋 2017-09-20
  • 打赏
  • 举报
回复
引用 2 楼 shijing266 的回复:
main方法是JVM(java虚拟机)自动调用 JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,所以mian方法需要public修饰, main方法所在的类也需要public修饰符。 另外由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。 JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,既需用void修饰。 至于main方法的参数String[ ] arg我们现在已经很少有机会去用它了,它用于在接受命令行传入的参数 这段知识如果你看了《Thinking in Java》 里面有一段关于main方法的,那么你就能懂
  • 打赏
  • 举报
回复 2
main方法是JVM(java虚拟机)自动调用 JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,所以mian方法需要public修饰, main方法所在的类也需要public修饰符。 另外由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。 JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,既需用void修饰。 至于main方法的参数String[ ] arg我们现在已经很少有机会去用它了,它用于在接受命令行传入的参数 这段知识如果你看了《Thinking in Java》 里面有一段关于main方法的,那么你就能懂
usecf 2017-09-20
  • 打赏
  • 举报
回复
你在cmd下用命令也行 javac 类名 生成class文件后 再 java class文件
那场遇见 2017-09-20
  • 打赏
  • 举报
回复
.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧