Java 我的UML图对于所附代码正确吗?
我的教授给了我们这个程序,但根本没有向我们解释UML,我想知道我是否正确地绘制了这个图表 代码:Java 我的UML图对于所附代码正确吗?,java,uml,Java,Uml,我的教授给了我们这个程序,但根本没有向我们解释UML,我想知道我是否正确地绘制了这个图表 代码: p1包; 公共类MyProg{ 静态积分i=5; 私有整数j=新整数(10); 受保护双k=2.5; 公共MyProg(){} 公共静态void main(字符串[]args){ MyProg mp=新的MyProg(); } void m1(){ System.out.println(“你好,世界!”); } 空m1(字符串str,int n){ 对于(int k=0;k
p1包;
公共类MyProg{
静态积分i=5;
私有整数j=新整数(10);
受保护双k=2.5;
公共MyProg(){}
公共静态void main(字符串[]args){
MyProg mp=新的MyProg();
}
void m1(){
System.out.println(“你好,世界!”);
}
空m1(字符串str,int n){
对于(int k=0;k
我自己从来没有太过执着于UML的细节(我肯定看到过设计会议深入讨论UML的细节,而不是设计本身),但有几个小问题:
- 您通常不希望在类图上包含私有变量、方法等,因为这是一个实现细节(而不是设计细节)编辑:这一点可能在某种程度上取决于图表的目的-有些人会认为,在某些情况下(例如,如果您的主要目的是传达您的实现而不是设计),包含这些内容是可以接受的
- 其中一些方法(例如,
)缺少访问修饰符。虽然从技术上讲,依赖默认值是合法的,但最好明确说明您的意图double getK()
- 如前所述,i和j不是字符串
- 在主操作args中,参数是某种数组,因此缺少多重性指示器(在结束圆括号之前的方括号中为星号)。因此,行应该看起来像
。当然+main(在args:String[*])
- 在m1操作中,n应具有未指定的类型
- 初始值应如注释中所述指定
- 您可以在MyProg操作中使用标准原型将其标记为构造函数。一些书籍建议不要对构造函数建模,除非它是非标准的(即需要一些参数)
- 我会非常小心参数的in-vs-inout指示器。在Java中,对象默认通过引用传递,这意味着参数是inout,而不是In。在C++中,相反的情况是,参数通过值传递,即在. 中。
- 在程序中,您使用
、Integer
、String
(我猜是类),有时还混合使用Double
,而在类图中,您使用所有小写(原语)并始终使用int
。这应该是一致的Integer
- 最好将所有答案粘贴到一个答案中
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);
}
}