0

你如何在 UML 中将一个类声明为 final static?我们对抽象类使用斜体约定,但我似乎找不到最终静态类的任何信息。

4

4 回答 4

3

“最后”?关键词

所以我假设你谈论的是 Java 编程语言。

Java决赛?

我假设你谈论的是 Java 中的 final 类

Java最终静态类

您不能在 Java 中定义静态类。只有嵌套类可以是静态的。这是一个带有嵌套类的示例 Java 代码。

public final class MyFinalClass {

    public static void main(String[] args) 
    {
        StaticNestedClassA.WhoIamI();
        StaticNestedClassB.WhoIamI();
    }


    public  static class StaticNestedClassA
    {
        public static void WhoIamI()
        {
            System.out.println("I am static class A");
        }

    }
    public final static class FinalStaticNestedClassB
    {

        public static void WhoIamI()
        {
            System.out.println("I am final static class B");
        }
    }
}

一个可能的 UML 类图是:[ final class 的 "leaf" tag-sterotype ]

在此处输入图像描述

并且要小心,“final”在用作变量时在 Java 中具有不同的含义。另一个 Java 示例代码

public class MySingletonClass 
{
    private MySingletonClass()
    {

    }

    private final static MySingletonClass me = new MySingletonClass();

}

一个可能的 UML 表示是:[“只读”一旦分配就不能改变]

在此处输入图像描述

于 2013-06-18T20:01:27.190 回答
1

根据经验,UML 几乎不知道特定于语言的特性。

于 2013-06-21T21:44:50.070 回答
1

来自 UML 上层结构规范 v2.4.1,第 7.3.8 节,分类器:

isFinalSpecialization:布尔值,如果为真,分类器不能通过泛化来特化。(...)默认为假。

这相当于 Java 类中的 final 修饰符。

回复:静态类-您是在谈论内部静态类吗?UML 支持将特性(操作和属性)设置为静态,但不支持内部类。

于 2013-06-28T04:44:15.073 回答
0

final 应该全部大写,static 应该加下划线

于 2014-10-24T04:33:37.203 回答