我的教授给了我们这个程序,但根本没有向我们解释 UML,我想知道我是否正确制作了这个图表。
代码:
package p1;
public class MyProg {
static int i = 5;
private Integer j = new Integer(10);
protected double k = 2.5;
public MyProg() {}
public static void main(String[] args) {
MyProg mp = new MyProg();
}
void m1(){
System.out.println("Hello World!");
}
void m1(String str, int n){
for(int k = 0; k < n; k++)
System.out.println(str);
}
public static int getI(){
return MyProg.i;
}
protected Integer getJ(){
return new Integer(j);
}
double getK(){
return new Double(k);
}
}
最佳答案
在你的图表上:
- 如前所述,i 和 j 不是字符串
- 在主要操作中,args 参数是某种数组,因此您缺少多重性指示符(在结束圆括号之前的方括号中的星号)。所以该行应该看起来像
+ main(in args: String[*])
。当然强调 - 在 m1 操作 n 中应该有未指定的类型
- 初始值应该按照评论中提到的那样指定
- 您可以在 MyProg 操作中使用标准构造型 <> 将其标记为构造函数。有些书建议不要对构造函数建模,除非它是非标准的(即需要一些参数)
- 我会非常注意参数的 in 与 inout 指标。在 Java 中,对象默认通过引用传递,这意味着参数是 inout,而不是 in。在 C++ 中情况相反,参数通过值传递,即它在。
关于java - 我的 UML 图对于附加代码是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39990400/