豪在这学python 发表于 2023-10-29 17:51:27

1.这个题的类图怎么画?

1.编写程序模拟美国人、中国人、凯里人,请分别定义People、Chinese、American和Kailiman 4个类。请画出类图,编写测试类测试以上四个类的功能。设计要求如下:
(1)People类有权限为protected的double型成员变量height和weight,以及公有方法sayHello()、averageHeight()和averageWeight()。
(2)Chinese类是People的子类,新增了chinaGongfu()方法,并重写父类的所有方法。
(3)American类是People的子类,新增了americanBoxing()方法,并重写父类的所有方法。
(4)Kailiman类是Chinese的子类,新增了gejiaGongfu()方法,并重写父类的所有方法。

isdkz 发表于 2023-10-29 17:51:37

在这个问题中,我们需要根据给定的要求画出类图。根据问题描述,我们可以得到以下类的关系:

1. People类:
· 属性:protected double型成员变量height和weight
· 方法:公有方法sayHello()、averageHeight()和averageWeight()

2. Chinese类(继承自People类):
· 方法:新增了chinaGongfu()方法,并重写父类的所有方法

3. American类(继承自People类):
· 方法:新增了americanBoxing()方法,并重写父类的所有方法

4. Kailiman类(继承自Chinese类):
· 方法:新增了gejiaGongfu()方法,并重写父类的所有方法

下面是类图的表示方法:

+-----------------+
|    People       |
+-----------------+
| - height: double|
| - weight: double|
+-----------------+
| + sayHello()    |
| + averageHeight()|
| + averageWeight()|
+-----------------+
      ^
      |
      |
+-----------------+
|    Chinese      |
+-----------------+
| + chinaGongfu() |
+-----------------+
      ^
      |
      |
+-----------------+
|    American   |
+-----------------+
| + americanBoxing()|
+-----------------+
      ^
      |
      |
+-----------------+
|    Kailiman   |
+-----------------+
| + gejiaGongfu() |
+-----------------+


以上是根据问题描述画出的类图,每个类的属性和方法都按照要求进行了标注。接下来,我们可以编写测试类来测试以上四个类的功能。

陶远航 发表于 2023-10-29 17:52:17

根据你的描述,这个类图可以按照以下方式绘制:

    +-------------------+
    |      People       |
    +-------------------+
    | - height: double|
    | - weight: double|
    +-------------------+
    | + sayHello()      |
    | + averageHeight() |
    | + averageWeight() |
    +-------------------+
         /_\\
            |
            |
+-------------------+       +-------------------+
|      Chinese      |       |   American   |
+-------------------+       +-------------------+
| + chinaGongfu()   |       | + americanBoxing()|
+-------------------+       +-------------------+
| + sayHello()      |       | + sayHello()      |
| + averageHeight() |       | + averageHeight() |
| + averageWeight() |       | + averageWeight() |
+-------------------+       +-------------------+
         /_\\
            |
            |
+-------------------+
|      Kailiman   |
+-------------------+
| + gejiaGongfu()   |
+-------------------+
| + sayHello()      |
| + averageHeight() |
| + averageWeight() |
| + chinaGongfu()   |
+-------------------+


在这个类图中,People是一个基类,它有两个受保护的成员变量height和weight,以及三个公有方法sayHello()、averageHeight()和averageWeight()。

Chinese和American是People的子类,它们都重写了父类的所有方法,并分别新增了chinaGongfu()和americanBoxing()方法。

Kailiman是Chinese的子类,它重写了父类的所有方法,并新增了gejiaGongfu()方法。

注意:在类图中,“+”表示公有方法,“-”表示私有或受保护的成员变量,“/_\\”表示继承关系。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
页: [1]
查看完整版本: 1.这个题的类图怎么画?