【问题标题】:Java UML Diagrams to ClassesJava UML 图到类
【发布时间】:2019-09-25 17:49:06
【问题描述】:

UML Diagram

虽然我参加过其他编程课程,但我对 Java 还是很陌生。我真的在为 UML 图中的类概念而苦苦挣扎。我有一个父类和两个子类。我的任务是创建这个类结构。不过,总的来说,我正在努力解决阶级和关系的概念。

示例:如果我的父类是“Animal”,而我的子类是“Monkey”和“Bear” - 如果将要实现的唯一选择是“Monkey”和“Bear”,则这会使类为“Animal”一个抽象类的区别,因为永远不会只有“动物”,它永远是“猴子”或“熊”。

那么,如果 Animal 是抽象的,我将如何创建三个文件(Animal.java、Monkey.java、Bear.java)?我了解 Animal 的属性和特征是由 Monkey 和 Bear 继承的。例如,假设我有动物的名称和年龄作为属性以及每个属性的获取器和设置器 - 如果“动物”类的名称和年龄是私有的(下面的代码),“熊”类如何获取名称和如果它在自己的 java 文件/类中,则年龄?我的代码在下面...

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. 

我知道我正在创建一个对象“Bear”,它是“Animal”类的一部分,但由于 Bear 是它自己的类,“Bear”如何从 Animal 获取分配的值?我可以为“Animal”和“Bear”分配默认值,但我的大脑无法将它们彼此交谈的方式放在一起。

这可能超出了本论坛的范围,但我的教授没有反应,我已经阅读了书籍、电子书、课程材料和几堂课,但我没有收到,而且我比我晚了两周这一点试图理解这个概念,以便我可以继续使用程序中的实际代码。

提前致谢。

【问题讨论】:

  • 你能分享你的图表吗?可能有继承指示。您的代码中没有显示。
  • @MichielLeegwater 这是课堂上的 UML 图。我只是在参考问题中使用了基本示例来获得一般理解。不是要为我做作业,只是为了了解它们之间的关系。 UML Diagram
  • 嗯。该链接未显示您的图表。您能否编辑您的帖子并将相关部分作为图片包含在内?
  • @MichielLeegwater 我没有发布图片的声誉(根据声明)尝试从 Flikr 链接它也许这会显示?
  • 正如预期的那样有继承。 @duffymo 的回答很到位。

标签: java uml


【解决方案1】:

你忘了这样做:

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"

【讨论】:

  • 谢谢!我会研究这个属性!这有助于大大澄清!
猜你喜欢
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2012-10-05
  • 2012-03-21
  • 1970-01-01
相关资源
最近更新 更多