gpt4 book ai didi

java - 可见性标准的解释(尤其是 Java 与 UML)

转载 作者:行者123 更新时间:2023-11-30 09:30:05 24 4
gpt4 key购买 nike

通过谷歌,找到了许多略有不同的解决方案,尽管(对我而言)感觉应该更容易回答。这些是我现在担心的词,同时试图获得体面的 UML'ing 技能 :D...

“公共(public)、 protected 、私有(private)、包”

让我首先尝试为 Java 完成这个,因为我觉得它非常熟悉(请纠正我,如果我做错了什么!):

  1. 公开
    • 同一实例的成员可以看到/使用它
    • 同一类的另一个实例的成员可以看到/使用它
    • 同一 pkg 中派生类的成员可以看到/使用它
    • 另一个 pkg 中派生类的成员可以看到/使用它
    • 同一 pkg 中另一个类的成员可以看到/使用它
    • 另一个 pkg 中另一个类的成员可以看到/使用它
    • 任何其他可以看到/使用这个
  2. protected
    • 同一实例的成员可以看到/使用它
    • 同一类的另一个实例的成员可以看到/使用它
    • 同一 pkg 中派生类的成员可以看到/使用它
    • 另一个 pkg 中派生类的成员可以看到/使用它
    • 同一 pkg 中另一个类的成员不能看到/使用它
    • 另一个 pkg 中另一个类的成员不能看到/使用这个
    • 任何其他不能看到/使用它的东西
  3. 私有(private)
    • 同一实例的成员可以看到/使用它
    • 同一类的另一个实例的成员可以看到/使用它
    • 同一 pkg 中派生类的成员不能看到/使用它
    • 另一个 pkg 中派生类的成员不能看到/使用这个
    • 同一 pkg 中另一个类的成员不能看到/使用它
    • 另一个 pkg 中另一个类的成员不能看到/使用这个
    • 任何其他不能看到/使用它的东西
  4. 包裹
    • 同一实例的成员可以看到/使用它
    • 同一类的另一个实例的成员可以看到/使用它
    • 同一 pkg 中派生类的成员可以看到/使用它
    • 另一个 pkg 中派生类的成员不能看到/使用这个
    • 同一 pkg 中另一个类的成员可以看到/使用它
    • 另一个 pkg 中另一个类的成员不能看到/使用这个
    • 任何其他不能看到/使用它的东西

我现在的问题:

  1. 这与 UML 标准究竟有何不同?
  2. 如果我在上面的列表中添加了错误,我在哪里添加了错误?我不是上帝,所以可能有一个 ;)

此致,并在此先感谢您的帮助!

最佳答案

来自 UML 标准。能见度:

A public element is visible to all elements that can access the contents of the namespace that owns it.

A private element is only visible inside the namespace that owns it.

A protected element is visible to elements that have a generalization relationship to the namespace that owns it.

A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible.

命名空间:

A namespace is a named element that can own other named elements.

我认为 private、protected 等的 UML 定义与 Java 非常相似。

关于java - 可见性标准的解释(尤其是 Java 与 UML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com