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 2012-03-09 20:25:13