一、实验目的
- 理解 Java 中类的定义和使用。掌握类的组合概念,通过一个类包含另一个类的对象来实现更复杂的功能。
二、实验内容
1. 类的设计
- Girl 类:代表女生,包含两个成员变量 name (姓名)和 height (身高)。构造方法用于初始化这两个变量。同时,有一个方法 keepPet ,用于表示女生养宠物的行为,该方法接收一个 Pet 类的对象作为参数,在方法中打印女生在养宠物的信息,并调用宠物的 eat 方法。
- Pet 类:代表宠物,有两个成员变量 name (宠物名字)和 furColor (皮毛颜色)。构造方法用于初始化这两个变量。 eat 方法用于表示宠物吃东西的行为,打印宠物在吃东西的信息。
- Test 类:包含 main 方法,用于创建 Girl 和 Pet 对象,并让女生养宠物,触发一系列行为。
2. 代码实现
class Girl {
String name;
double height;
public Girl(String name, double height) {
this.name = name;
this.height = height;
}
public void keepPet(Pet pet) {
System.out.println(name + "在养宠物。");
pet.eat();
}
}
class Pet {
String name;
String furColor;
public Pet(String name, String furColor) {
this.name = name;
this.furColor = furColor;
}
public void eat() {
System.out.println(name + "宠物在吃东西。");
}
}
public class Test {
public static void main(String[] args) {
Girl girl = new Girl("小美", 1.65);
Pet pet = new Pet("咪咪", "白色");
girl.keepPet(pet);
}
}
三、以下是对上述代码的详细解释:
a. Girl 类
1. 成员变量:
- String name :用于存储女生的姓名。
- double height :用于存储女生的身高。
2. 构造方法:
- public Girl(String name, double height) :接收女生的姓名和身高作为参数,在构造对象时初始化成员变量。
3. 方法:
- public void keepPet(Pet pet) :这个方法用于表示女生养宠物的行为。它接收一个 Pet 类型的对象作为参数。
- System.out.println(height + "的" + name + "养宠物"); :打印出女生的身高和姓名以及“养宠物”的信息。
- pet.eat(); :调用传入的宠物对象的 eat 方法,让宠物吃东西。
b. Pet 类
1. 成员变量:
- String name :用于存储宠物的名字。
- String furColor :用于存储宠物皮毛的颜色。
2. 构造方法:
- public Pet(String name, String furColor) :接收宠物的名字和皮毛颜色作为参数,在构造对象时初始化成员变量。
3. 方法:
- public void eat() :这个方法用于表示宠物吃东西的行为。打印出宠物皮毛的颜色和名字以及“宠物在吃东西”的信息。
c.Test 类
1. main 方法:
-
Girl girl = new Girl("lisa", 1.80); :创建一个女生对象,名为“lisa”,身高为 1.80。
-
Pet pet = new Pet("大福", "黄色"); :创建一个宠物对象,名为“大福”,皮毛颜色为“黄色”。
-
girl.keepPet(pet); :让女生对象养宠物对象,触发女生的养宠物行为,进而调用宠物的吃东西方法,最终输出“1.80 的 lisa 养宠物”和“黄色的大福吃东西”。
四、实验结果
五、实验总结
1. 通过本次实验,深入理解了 Java 中类的定义和构造方法的使用,能够根据实际需求设计和实现类的成员变量和方法。
2. 掌握了类的组合这一重要概念,通过在一个类中包含另一个类的对象,可以实现更复杂的功能和模拟现实世界中的关系。例如,在本实验中,女生类包含宠物类的对象,很好地模拟了女生养宠物的场景。