我最近开始学习java和我的第一个OOP
language.I读取static methods
不需要类实例化它们在运行时你喂类的JVM
.My问题如果static
method
是private nested class
内部会发生什么。将它仍然运行?
编辑 - 我尝试它不工作,我想知道在后台发生。
public class tester{
private class estupid{
public static void main(String[] args){
System.out.println("Hello Im a static method of a private class and main too");
}
}
}
以人反对投票,有人建议,更高效的活性会告诉什么是错的片段,谢谢。
有很多错误,你可以简单地通过编译的代码得到。我建议你使用命令行javac编译的
public static void main(String[] args) {
estupid.main(args);
}
}编译和运行上面的代码后
C:\Himanshu\GitHub\hsingh-learning\src>javac tester.java C:\Himanshu\GitHub\hsingh-learning\src>java tester Hello Im a static method of a private class and main too
这仅仅是纠正你的代码,使之编译和运行的,但是写在嵌套类主要方法是不建议的。另一件事是,你正在私人嵌套类,所以你使它从保持类之外不可访问(测试类的情况下)。测试类是公共的,访问JVM,但嵌套类被标记为私有,这样不能被访问。
这并不意味着你不能从JVM调用嵌套类的主要静态方法。让你的嵌套类公众。
public class tester {
public static class estupid {
public static void main(String[] args) {
System.out.println("Hello Im a static method of a private class and main too");
}
}
}
编译它,这将产生2类文件。 1. tester.class 2.测试仪$ estupid.class
运行第二测试仪$ estupid其含有的主要方法(其由JVM必须)
C:\Himanshu\GitHub\hsingh-learning\src>java tester$estupid
Hello Im a static method of a private class and main too
主要的方法必须是公共类的成员。静态方法是类本身,而不是一个对象,或者是类的“实例”的子方法。