2012年7月24日 星期二

Java 的 public protected private

Java 的 field 和 method 有分為四種 access level:


public、protected、private 和 defalut (不加修釋字)

  • public:自己的 class,繼承自己的子 class 和其他所有的 class 都可以 access 。
  • protected:只有自己的 class 和 繼承自己的子 class 可以 access。
  • private:只有自己可以 access 。
  • defalut (不加修釋字):同一個 package 下不同的 class 可以 access

C++ 的 struct 與 class

*這裡只討論 C++,不討論 C,C 中的 struct 和 C++ 中的 struct 有極大的不同。


C++ 的 struct / class 其 member 的access level 有分為 public、protected 和 private。
  • public:自己的 class,繼承自己的子 class 和其他所有的 class 都可以 access 。
  • protected:只有自己的 class 和繼承自己的子 class 可以access。
  • private:只有自己可以 access。

其中 struct 和 class 有幾點不同要注意的:
  1. 不加修飾字時 struct 中的 member 預設的 access level 是 public。(為了與 C 相容)
  1. 不加修飾字時 class 中的 member 預設的 access level 是 private。
  1. 不加修飾字時 struct 的繼承預設是 public 繼承。
  1. 不加修飾字時 class 的繼承預設是 private  繼承。

除了以上幾點不同以外,C++ 中的 struct 基本上與 class 的特性是一樣的。