用Java语言设计电话薄程序 (1)根据下面的描述设计类层次关系。 1)联系人信息有:姓名、电话、备注; 2)家人信息:还包括地址、固定电话; 3)朋友信息:还包括类别(同学、同事、其他朋友); 4)工作联系人信息:还包括公司、部门、职务。 (2)注意重写toString(),返回每类对象的全部信息 (3) 要求在父类中定义display()方法,此方法中将toString()结果输出值控台 (4)提供添加、删除、修改、查看指定成员、查看所有联系人信息等方法
时间: 2024-02-09 18:13:07 浏览: 59
电话号码薄程序java
4星 · 用户满意度95%
好的,根据您的要求,我可以为您设计一个电话薄程序的类层次关系。以下是一个可能的设计:
```
class Contact {
private String name;
private String phone;
private String note;
public Contact(String name, String phone, String note) {
this.name = name;
this.phone = phone;
this.note = note;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
public String getNote() {
return note;
}
public void setName(String name) {
this.name = name;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setNote(String note) {
this.note = note;
}
public void display() {
System.out.println(this.toString());
}
@Override
public String toString() {
return "姓名:" + name + ",电话:" + phone + ",备注:" + note;
}
}
class FamilyContact extends Contact {
private String address;
private String homePhone;
public FamilyContact(String name, String phone, String note, String address, String homePhone) {
super(name, phone, note);
this.address = address;
this.homePhone = homePhone;
}
public String getAddress() {
return address;
}
public String getHomePhone() {
return homePhone;
}
public void setAddress(String address) {
this.address = address;
}
public void setHomePhone(String homePhone) {
this.homePhone = homePhone;
}
@Override
public String toString() {
return super.toString() + ",地址:" + address + ",固定电话:" + homePhone;
}
}
class FriendContact extends Contact {
private String category;
public FriendContact(String name, String phone, String note, String category) {
super(name, phone, note);
this.category = category;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
@Override
public String toString() {
return super.toString() + ",类别:" + category;
}
}
class WorkContact extends Contact {
private String company;
private String department;
private String position;
public WorkContact(String name, String phone, String note, String company, String department, String position) {
super(name, phone, note);
this.company = company;
this.department = department;
this.position = position;
}
public String getCompany() {
return company;
}
public String getDepartment() {
return department;
}
public String getPosition() {
return position;
}
public void setCompany(String company) {
this.company = company;
}
public void setDepartment(String department) {
this.department = department;
}
public void setPosition(String position) {
this.position = position;
}
@Override
public String toString() {
return super.toString() + ",公司:" + company + ",部门:" + department + ",职务:" + position;
}
}
class PhoneBook {
private List<Contact> contacts;
public PhoneBook() {
this.contacts = new ArrayList<>();
}
public void addContact(Contact contact) {
contacts.add(contact);
}
public void removeContact(Contact contact) {
contacts.remove(contact);
}
public void updateContact(Contact contact, String name, String phone, String note) {
contact.setName(name);
contact.setPhone(phone);
contact.setNote(note);
}
public Contact getContactByName(String name) {
for (Contact contact : contacts) {
if (contact.getName().equals(name)) {
return contact;
}
}
return null;
}
public void displayContact(Contact contact) {
contact.display();
}
public void displayAllContacts() {
for (Contact contact : contacts) {
contact.display();
}
}
}
```
在这个设计中,我们首先定义了一个基本的Contact类,包括姓名、电话和备注。然后,我们定义了三个子类:FamilyContact、FriendContact和WorkContact,分别表示家人、朋友和工作联系人。这些子类在基本的Contact类的基础上增加了一些特定的属性,并重写了toString()方法。
最后,我们定义了一个PhoneBook类,用于管理联系人。这个类包括添加、删除、修改、查看指定成员、查看所有联系人信息等方法。需要注意的是,这个类中所有涉及到Contact的操作都是通过Contact类的方法实现的,因此这些方法可以适用于所有类型的联系人。同时,我们也提供了一个display()方法,用于将联系人的信息输出到控制台。
阅读全文