我的教授给了我们这个程序,但是根本没有向我们解释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 vs inout指示器,我将非常小心。在Java中,默认情况下,对象是通过引用传递的,这意味着参数是inout而不是in。在C ++中,相反的情况是,参数是通过值即in传递的。 10-05 18:51