Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java转换成UML?_Java_Uml_Diagram - Fatal编程技术网

如何将Java转换成UML?

如何将Java转换成UML?,java,uml,diagram,Java,Uml,Diagram,我一直在网站上搜索,但我找不到感觉合适的东西。我想把这个java代码重写成UML图 public class Fotbollslag { private Spelare[] lag=new Spelare[30]; public void läggTillSpelare(Spelare spelare){ lag[antalSpelare]=spelare; antalSpelare++; 以以下代码为例: public class Employee { private st

我一直在网站上搜索,但我找不到感觉合适的东西。我想把这个java代码重写成UML图

public class Fotbollslag {
    private Spelare[] lag=new Spelare[30];

public void läggTillSpelare(Spelare spelare){
lag[antalSpelare]=spelare;
antalSpelare++;

以以下代码为例:

public class Employee {
    private static String department = "R&D";
    private int empId;
    private Employee(int employeeId) {
        this.empId = employeeId;
    }
    public static String getEmployee(int emplId) {
        if (emplId == 1) {
            return "idiotechie";
        } else {
            return "Employee not found";
        }
    }
    public static String getDepartment() {
        return department;
    }
}
上面的示例是
Employee
类的一个示例,它有两个
private
类型的属性
int
String
,一个
构造函数
,以及两个
类型的
String
公共方法。在UML中,对于不同的范围,我们有不同的符号,例如
私有、公共、包和受保护的
。 UML符号是:

public:(+)、private:(-)、package:(~)和protected:(#)
对于上面提到的代码,UML类图如下所示:


(来源:)

如您所见,
类图
看起来像一个表,它分为三个部分: 上半部分包含
类名
,中间部分包含
属性
,最后是下半部分,包含
方法(函数)

的名称通常是粗体的,表的中间单元格是
属性
部分,底部是编写
方法的部分。因此,编写
属性
的正确表示法是首先给出属性范围的表示法(
-
如果
私有
+
如果
公共
),然后是属性的名称(
empId
员工
案例中),用冒号隔开(
),然后是属性的类型(例如
String
int
),如果它已经初始化,那么您也会写入该属性的值。对于
方法
来说,情况是一样的。在你的问题中,类之间没有任何关系,所以我没有包括任何关系解释。 我建议您阅读更多关于
UML
图的一般知识,如果您能将代码转换为
UML类图,您可以访问

编辑:

我刚刚注意到您在评论中提到,您不知道如何在UML图中表示
数组。从您的第一个问题看不清楚,但下面是在您的示例中应该如何做到这一点:

-lag[0..29]:Spelare

解释:请注意,
数组的可见性是
私有的
,因此符号是
-
。在可见性之后,我们写下
数组的名称
,它的初始大小(在您的例子中,大小是30,因此索引
[0..29]
,用冒号分隔,我们写下数组的类型,在您的例子中是
Spelare


我希望这能回答您的问题。

如果我看对了,您只会在显示阵列时遇到问题。您可以这样做:


您只需将边界放在类型后面的方括号中。由于数组似乎固定为30,您只需放置
[30]
。否则,您可以像往常一样使用
范围运算符指定任何重数。
值得注意的是,在数组中,它可以同时是字符串和整数。您有问题吗?“我想要X”是的,如何将java代码转换成Uml:)这也不是问题。请看:这段代码甚至不完整。我建议读一本关于如何做到这一点的书,然后提出一个真正的问题。我已经编辑了我的答案,检查它是否回答了你的问题question@DanielHaugen忘记标记您:/public方法laggTillSpelare应该有一个
void
返回类型。@rags2rich。不管怎样,OP似乎已经淹死了。并且-如果没有指定(如上所述),这是
void
void
只是表示空或无的另一个词。您应该包括返回类型,无论它是
String
类型、
int
类型还是任何其他类型,包括
void
。除非您重新编写了UML规则或有可靠的参考资料可供查阅,因为我没有发现任何与UML中的任何其他类型不同的说法或处理
void
类型的方法。作为一名软件开发人员,如果我想理解UML模型所暗示的设计/架构,我想知道返回类型。UML 2.5.1的117:[]'('[]')'[':'[]['['[']']]['{'['',']*'}']]关键字特定于类C语言,以模拟“无返回值”。其他语言使用不同的概念。例如,Pascal使用
过程
(无返回值)和
函数
,这需要返回类型。例如,Python不强制执行任何内容,只是在运行时进行决定。你需要走出你的Java抽屉,把这个世界看作一个相当大的世界。坚持你的事业和手头的问题。这个问题分享了一个Java代码示例,您应该在UML类图中包含返回类型
void
。就这样。