通过谷歌,发现了许多略有不同的解决方案,尽管(对我来说)感觉应该更容易回答。这些是我现在担心的话,同时试图获得体面的 UML 技能:D ...
“公共、受保护、私有、包”
让我首先尝试为 Java 完成这个,因为我对它非常熟悉(请纠正我,如果我做了任何坏事!):
- 上市
- 同一实例的成员可以看到/使用它
- 同一类的另一个实例的成员可以看到/使用它
- 同一 pkg 中派生类的成员可以看到/使用它
- 另一个 pkg 中的派生类的成员可以看到/使用它
- 同一 pkg 中另一个类的成员可以看到/使用它
- 另一个 pkg 中的另一个类的成员可以看到/使用它
- 其他任何东西都可以看到/使用这个
- 受保护
- 同一实例的成员可以看到/使用它
- 同一类的另一个实例的成员可以看到/使用它
- 同一 pkg 中派生类的成员可以看到/使用它
- 另一个 pkg 中的派生类的成员可以看到/使用它
- 同一 pkg 中另一个类的成员无法看到/使用它
- 另一个 pkg 中另一个类的成员无法看到/使用它
- 其他任何东西都看不到/使用这个
- 私人的
- 同一实例的成员可以看到/使用它
- 同一类的另一个实例的成员可以看到/使用它
- 同一 pkg 中派生类的成员无法看到/使用它
- 另一个 pkg 中的派生类成员无法看到/使用它
- 同一 pkg 中另一个类的成员无法看到/使用它
- 另一个 pkg 中另一个类的成员无法看到/使用它
- 其他任何东西都看不到/使用这个
- 包裹
- 同一实例的成员可以看到/使用它
- 同一类的另一个实例的成员可以看到/使用它
- 同一 pkg 中派生类的成员可以看到/使用它
- 另一个 pkg 中的派生类成员无法看到/使用它
- 同一 pkg 中另一个类的成员可以看到/使用它
- 另一个 pkg 中另一个类的成员无法看到/使用它
- 其他任何东西都看不到/使用这个
我现在的问题:
- 这与 UML 标准有何不同?
- 如果我在上面的列表中包含错误,我在哪里包含错误?我不是上帝,所以可能有一个;)
最好的问候,并提前感谢您的帮助!