请为公交系统中市民的公交卡和学生市民的学生卡设计一个类体系结构,尽可能保证代码的重用率。 市民的公交卡内容包括:编号、姓名、性别; 学生的学生卡内容包括:编号、姓名、性别、类型、有效日期; 给出相关实体类的定义代码,要求每个类: (1)体现类的封装性与隐私性; (2)有方便实例化的构造方法; (3)有方便打印信息的show()方法。java
时间: 2024-03-25 07:38:38 浏览: 54
JAVA公交代码
5星 · 资源好评率100%
下面是一个可能的类体系结构的定义代码:
```
// Person类,表示一个人
public class Person {
private String id; // 编号
private String name; // 姓名
private String gender; // 性别
public Person(String id, String name, String gender) {
this.id = id;
this.name = name;
this.gender = gender;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public void show() {
System.out.println("编号:" + id);
System.out.println("姓名:" + name);
System.out.println("性别:" + gender);
}
}
// CitizenCard类,表示市民的公交卡
public class CitizenCard {
private Person person; // 持卡人信息
public CitizenCard(Person person) {
this.person = person;
}
public Person getPerson() {
return person;
}
public void show() {
System.out.println("公交卡信息:");
person.show();
}
}
// StudentCard类,表示学生的学生卡
public class StudentCard {
private Person person; // 持卡人信息
private String type; // 类型
private String validDate; // 有效日期
public StudentCard(Person person, String type, String validDate) {
this.person = person;
this.type = type;
this.validDate = validDate;
}
public Person getPerson() {
return person;
}
public String getType() {
return type;
}
public String getValidDate() {
return validDate;
}
public void show() {
System.out.println("学生卡信息:");
person.show();
System.out.println("类型:" + type);
System.out.println("有效日期:" + validDate);
}
}
```
在这个类体系结构中,Person类表示一个人,包括编号、姓名、性别等属性,并提供了构造方法和show()方法。CitizenCard类表示市民的公交卡,包括持卡人信息,并提供了构造方法和show()方法。StudentCard类表示学生的学生卡,除了持卡人信息外,还包括类型和有效日期等属性,并提供了构造方法和show()方法。
这个类体系结构的优点是,Person类的定义可以被CitizenCard和StudentCard类共用,提高了代码的重用率,同时每个类都体现了封装性和隐私性,保证了数据的安全性。同时,提供了方便实例化的构造方法和方便打印信息的show()方法,方便了程序员的使用。
阅读全文