Java UML 图到 类
Java UML Diagrams to Classes
我是 Java 的新手,虽然我参加过其他编程课程。我真的很难理解 UML 图中的 class 概念。我有一个 parent class 和两个 child class。我的任务是创建这个 class 结构。不过,我正在为 class 的概念和一般关系而苦苦挣扎。
示例:如果我的 parent class 是 "Animal" 而我的 child class 是 "Monkey" 和 "Bear" - 如果将要实施的唯一选择是 "Monkey" 和 "Bear",这会使 class "Animal" 成为抽象的 class 区别,因为永远不会只有 "Animal",它将始终是 "Monkey" 或 "Bear"。
那么,如果 Animal 是抽象的,我将如何创建三个文件(Animal.java、Monkey.java、Bear.java)?我知道 Animal 的属性和特征是由 Monkey 和 Bear 继承的。例如,假设我有动物的名称和年龄作为属性以及每个动物的 getter 和 setter - 如果 "Animal" class 的名称和年龄是私有的(下面的代码),[=39 如何=]class接名字和年龄是否在自己javafile/class?我的代码如下...
Animal.java
public class Animal {
private String animalName;
private int animalAge;
public void setName (String name) {
animalName = name;
}
public void setAge (int age) {
animalAge = age;
}
public static String getName() {
return animalName;
}
public static String getAge() {
return animalAge;
}
}
Bear.java
public class Bear {
public int weight;
public static int weight() {
return weight;
}
}
// This is where I get stuck & don't know where to go from here.
我知道我正在创建一个 object "Bear",它是 class "Animal" 的一部分,但由于 Bear 是它自己的 class, "Bear" 如何从 Animal 获取赋值?我可以为 "Animal" 和 "Bear" 分配默认值,但我的大脑无法理解它们是如何相互交谈的。
这可能不在本论坛的范围内,但我的教授没有回应,我已经通读了书籍、电子书、课程 material 和几场讲座,这对我来说并不重要,我我现在已经落后两周试图理解这个概念,所以我可以继续使用程序中的实际代码。
提前致谢。
您忘记这样做了:
public class Bear extends Animal {
// ...
}
我建议您添加构造函数:
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() [ return this.name; }
public int getAge() { return this.age; }
}
public class Bear extends Animal {
private int weight;
public Bear(String name, int age, int weight) {
super(name, age);
this.weight = weight;
}
public int getWeight() { return this.weight; }
}
你可以这样做,因为 Bear
IS-A Animal
:
Animal b = new Bear("Smokey", 10, 300);
System.out.println(b.getName()); // prints "Smokey"
我是 Java 的新手,虽然我参加过其他编程课程。我真的很难理解 UML 图中的 class 概念。我有一个 parent class 和两个 child class。我的任务是创建这个 class 结构。不过,我正在为 class 的概念和一般关系而苦苦挣扎。
示例:如果我的 parent class 是 "Animal" 而我的 child class 是 "Monkey" 和 "Bear" - 如果将要实施的唯一选择是 "Monkey" 和 "Bear",这会使 class "Animal" 成为抽象的 class 区别,因为永远不会只有 "Animal",它将始终是 "Monkey" 或 "Bear"。
那么,如果 Animal 是抽象的,我将如何创建三个文件(Animal.java、Monkey.java、Bear.java)?我知道 Animal 的属性和特征是由 Monkey 和 Bear 继承的。例如,假设我有动物的名称和年龄作为属性以及每个动物的 getter 和 setter - 如果 "Animal" class 的名称和年龄是私有的(下面的代码),[=39 如何=]class接名字和年龄是否在自己javafile/class?我的代码如下...
Animal.java
public class Animal {
private String animalName;
private int animalAge;
public void setName (String name) {
animalName = name;
}
public void setAge (int age) {
animalAge = age;
}
public static String getName() {
return animalName;
}
public static String getAge() {
return animalAge;
}
}
Bear.java
public class Bear {
public int weight;
public static int weight() {
return weight;
}
}
// This is where I get stuck & don't know where to go from here.
我知道我正在创建一个 object "Bear",它是 class "Animal" 的一部分,但由于 Bear 是它自己的 class, "Bear" 如何从 Animal 获取赋值?我可以为 "Animal" 和 "Bear" 分配默认值,但我的大脑无法理解它们是如何相互交谈的。
这可能不在本论坛的范围内,但我的教授没有回应,我已经通读了书籍、电子书、课程 material 和几场讲座,这对我来说并不重要,我我现在已经落后两周试图理解这个概念,所以我可以继续使用程序中的实际代码。
提前致谢。
您忘记这样做了:
public class Bear extends Animal {
// ...
}
我建议您添加构造函数:
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() [ return this.name; }
public int getAge() { return this.age; }
}
public class Bear extends Animal {
private int weight;
public Bear(String name, int age, int weight) {
super(name, age);
this.weight = weight;
}
public int getWeight() { return this.weight; }
}
你可以这样做,因为 Bear
IS-A Animal
:
Animal b = new Bear("Smokey", 10, 300);
System.out.println(b.getName()); // prints "Smokey"