簡體   English   中英

如何在 Java 中的包私有聲明中破壞封裝

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM