class HelloWorld {
public static void main(String arg[]) {
System.out.println("Hello World!");
}
}
使用javac HelloWorld.java
and java HelloWorld
,代码编译并运行良好。由于 Java 中的默认访问说明符是package
,这怎么可能?它必须有外人保护...
class HelloWorld {
public static void main(String arg[]) {
System.out.println("Hello World!");
}
}
使用javac HelloWorld.java
and java HelloWorld
,代码编译并运行良好。由于 Java 中的默认访问说明符是package
,这怎么可能?它必须有外人保护...
访问修饰符在编译期间限制访问。但是允许使用任何访问修饰符加载一个类,使用反射找到主要方法并运行它。这就是 java 工具在从类中启动时所做的事情。请参阅http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html
默认访问修饰符意味着您只能访问该包中的该类。
你在这里做的是,运行和编译类。这与修饰符和可访问性无关。
您将始终像这样运行和编译类。
重要的是您的类可以在正在运行的类或包中访问。
您不能在子包或其他包中访问具有 Default 修饰符的类。默认类只能在同一个包中访问,否则会出现编译时错误。
就您的代码而言,您没有做任何类似的事情。
认为 -
class HelloWorld {
public static void main(String arg[]) {
System.out.println("Hello World!");
}
}
和
Class Hello extends HelloWorld{
// some code here
}
现在如果你编译类 Hello,那么它会给你以下错误。
class, interface, or enum expected