Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的默认访问说明符可以从类外部访问 类HelloWorld{ 公共静态void main(字符串arg[]){ System.out.println(“你好,世界!”); } }_Java - Fatal编程技术网

Java中的默认访问说明符可以从类外部访问 类HelloWorld{ 公共静态void main(字符串arg[]){ System.out.println(“你好,世界!”); } }

Java中的默认访问说明符可以从类外部访问 类HelloWorld{ 公共静态void main(字符串arg[]){ System.out.println(“你好,世界!”); } },java,Java,使用javac HelloWorld.java和javahelloworld,代码编译和运行良好。既然Java中的默认访问说明符是package,怎么可能呢?它必须有来自外部的保护…默认访问修饰符意味着您只能访问该包中的类 您在这里所做的是运行和编译类。 这与修改器和可访问性无关 您将始终运行和编译这样的类 重要的是您的类在正在运行的类或包中是可访问的 您不能访问子包或其他包中具有默认修饰符的类。默认类只能在同一个包中访问,否则会出现编译时错误 就您的代码而言,您没有这样做 假设- class

使用
javac HelloWorld.java
javahelloworld
,代码编译和运行良好。既然Java中的默认访问说明符是
package
,怎么可能呢?它必须有来自外部的保护…

默认访问修饰符意味着您只能访问该包中的类

您在这里所做的是运行和编译类。 这与修改器和可访问性无关

您将始终运行和编译这样的类

重要的是您的类在正在运行的类或包中是可访问的

您不能访问子包或其他包中具有默认修饰符的类。默认类只能在同一个包中访问,否则会出现编译时错误

就您的代码而言,您没有这样做

假设-

class HelloWorld {
public static void main(String arg[]) { 
    System.out.println("Hello World!");
}
}

现在,如果您编译类Hello,那么它将给出以下错误

 class, interface, or enum expected

访问修饰符在编译时限制访问。但是它可以加载带有任何访问修饰符的类,使用反射来查找主方法并运行它。这就是java工具在从类中进行lanching时所做的。请参见

类无法访问包外,但这里不是该概念。您刚刚运行了这个类,所以访问说明符并没有出现在图片中。哪个外部人员将使用它。。?这里没有外人会使用HelloWorld类。呃,成功访问它的类在同一个包中?
 class, interface, or enum expected