JVMが非公開のクラスを見ることができる理由は、可視性を制御すること、つまりすべてを見て、何が見える/呼び出す/アクセスできるかを決定するからです。
クラス上でのpublic
の使用はメソッドとは異なりますが、コンセプトは同じです。
メソッドでは、public
キーワードは、メソッドがクラス外で使用できることを意味します。たとえば、次のようになります。
class A {
public static void do() {
// Do something
}
}
class B {
public static void main(String[] args) {
A.do(); // This works because do() is public and static
}
}
同じ概念がクラスに適用されますが、異なる方法です。
クラス上でpublic
を使用すると、現在の.java
ファイル(それは独自の.class
ファイルを持つ)の外部で使用できることを意味します。ここで
は例です:私が学んだことから、
//C.java
class C {
static void do() {
// Do something
}
public static void run() {
A.do(); // Works because A.do() is public and static
B.do(); // Does not work because B is not a public class
}
}
//A.java
public class A {
public static void main(String[] args) {
B.do(); // Works because B is in the same file
do(); // Duh...
}
public static void do() {
// Do something
}
}
class B {
static void do() {
// Do something
}
}
出典
2012-03-09 20:20:44
Jon
、プライベートパッケージ(デフォルトのアクセス)クラスは、そのパッケージ外のクラスと本質的に見えません。したがって、そのパブリッククラスはそのパッケージの外のクラスには使用できません。 – Jagat