[英]How does Java protect private, package-private, and protected variables?
[英]How can be encapsulation broken in package-private declarations in Java
“封裝很容易被破壞,因為外部代碼可以在您的代碼使用的相同包中定義類,從而訪問您的包私有聲明。”
我無法理解我們如何才能實現聲明中所寫的內容。 封裝怎么破?
您可以通過一個小示例了解這意味着什么。
這里我們有一個包含一些package-private
可見性變量的類,當不使用可見性關鍵字時應用的可見性。
package insider;
public class PrivateClass {
static int var1 = 10;
static String var2 = "Secret";
}
在這里,我在另一個包中有一個類。 這將不會引發變量的可見性錯誤。
package outsider;
import insider.PrivateClass;
public class OutsiderClass {
public static void outsider() {
System.out.println(PrivateClass.var2 + " " + PrivateClass.var1);
}
}
在這里,我有一個類與我們的package-private
變量類位於同一個包中。 這個在訪問變量時不會拋出錯誤。
package insider;
public class InfiltratorClass {
public static void infiltrator() {
System.out.println(PrivateClass.var2 + " " + PrivateClass.var1);
}
}
文件結構概述:
insider
PrivateClass
InfiltratorClass
outsider
OutsiderClass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.