uml图中的方法

时间:2017-08-18 13:02:07

标签: java methods uml

我有这个uml图,我不明白我的朋友的代码的一部分。我不明白“等于”的方法..用于什么以及为什么要使用它? 这是UML: https://developer.android.com/topic/libraries/support-library/preview/emoji-compat.html

但我不明白代码的某些部分。

到目前为止,这是代码的一部分:

class Artist { 

private String name;

Artist(String name) { // constructor
    this.name = name;
}

public String getName() { // name getter
    return name;
}

public String toString() { // toString
    return name;
}
}

class CD { 
private String title;
private Artist name;

CD(String title) {
    this.title = title;
}

CD(String title, Artist name) {
    this.title = title;
    this.name = name;
}

public Artist getArtist() {
    return name;
}

public String getTitle() {
    return title;
}

public String toString() {
    return title + " by " + getArtist();
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    CD other = (CD) obj;
    if (name == null) {
        if (other.name != null)
            return false;
    } else if (!name.equals(other.name))
        return false;
    if (title == null) {
        if (other.title != null)
            return false;
    } else if (!title.equals(other.title))
        return false;
    return true;
}

}

2 个答案:

答案 0 :(得分:1)

类图错过了CD继承自提供equals方法的常规Object。正确地看起来应该是

enter image description here

(我的Java知识接近于null。)

答案 1 :(得分:1)

Equals方法是一个执行数值比较的包装类。在外行术语中,它比较两个数字。例子x = 10,y = 20是x = y?答案是否定的。在java中你有相同的方法,如果x = y else返回false,则返回true。 在您的代码中,他将覆盖方法等于,以自定义代码中的比较。他正在比较两个CD对象,如果它们相等则返回true,否则返回false。