Java中的默认访问说明符可从类外部访问

时间:2013-07-02 09:40:22

标签: java

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

使用javac HelloWorld.javajava HelloWorld,代码可以编译并运行良好。由于Java中的默认访问说明符是package,它怎么可能?它必须得到外人的保护......

2 个答案:

答案 0 :(得分:1)

访问修饰符在编译期间限制访问。但是允许使用任何访问修饰符加载类,使用反射来查找主方法并运行它。这是java工具从类中进行归档时所执行的操作。见http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

答案 1 :(得分:0)

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

你在这里做的是,运行和编译类。 这与修饰符和可访问性无关。

你将永远运行&编译那样的类。

重要的是,您的班级可以在正在运行的班级或包中访问。

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

就你的代码而言,你没有做那样的事情。

假设 -

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