C# 與 Java 的 Access Modifier

C# 與 Java 的 Access Modifier

Java Access Modifier:

  • Private
  • Default (相同 Package 內才可存取)
  • Protected (相同package或子類別皆可存取)
  • Public

P.S Class 只能使用 public, default 兩種 Access Modifier, 不同 Project 若建立相同 package, java 會視為同一個 Package

C# Access Modifier:

  • Private
  • Internal (default) : 相同 Project 內才可存取
  • Protected : 子類別才可存取
  • Protected internal :相同 Project 或子類別皆可存取
  • Public

P.S 1. Class 只能使用 public, internal 兩種 Access Modifier, 沒有設定 Access Modifier 則預設為 internal

     2.同一個 Project 內的所有 Class (不論在哪個 Namespace 中, 也不論 Class Modifier 為何) 皆可互相存取

 

Namespace(C#) 意義與 Package(Java)意義相仿

•相同點

同樣都能將程式碼群組化, 並且可以在不同群組中建立相同名稱的 Class

•相異點

–Package: 當程式碼位於不同 Package 內時, 會被不同的 Access Modifier 影響存取權限

–Namespace: 當程式碼位於不同 Namespace 內時, 不會因為不同的 Access Modifier 影響存取權限