gpt4 book ai didi

java - 在java中显示联系人列表程序中的联系人

转载 作者:行者123 更新时间:2023-12-01 11:55:41 25 4
gpt4 key购买 nike

我是编程和面向对象设计的新手。这是我完成学士学位(不是编程)的最后一个要求。我对如何进行面向对象的工作有点困惑,我所看到的似乎都没有帮助。作业是创建一个使用继承、多态性和集合的联系人列表。我需要一个存储两种类型联系人的联系人列表:企业联系人和个人联系人。我需要提示 1 添加联系人,然后询问 1 个人情况或 2 业务情况。提示 2 将允许用户显示所选联系人的输出,提示 3 将退出。

我构建了以下类和子类。我很确定这些类构建正确,但在添加任一类型的联系人后,当我选择 2 以便查看时,我只能看到父类(super class)的信息,而看不到子类的信息(即:职位和组织或出生日期)。任何帮助都会很棒,我只需要解决这个问题,然后我很乐意将编程留给那些知道自己在做什么的人。

我为这么长的帖子表示歉意,但我认为我应该展示所有内容。

这是我的主要类(class):

package contactlist;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ContactList {

/*ArrayList<List.Contact> contactlist;*/

List<Contact> contactlist = new ArrayList<>();


/* Contact contact; */
private int top = 0;

public static void main(String[] args) throws IOException {
/* Contact contact;
contact = new Contact();
List.Contact c;
c = contact; */
ContactList list = new ContactList();

BufferedReader keyIn;
keyIn = new BufferedReader(new InputStreamReader(System.in));
String choose = "";
while (true) {

System.out.println("\n[1] Add contact");
System.out.println("[2] View all contacts");
System.out.println("[3] Quit");
System.out.print("Choose : ");

try {
choose = keyIn.readLine();
} catch (IOException e) {

System.out.println("Error");
}
switch (choose) {
case "1":
list.addContact();
break;
case "2":
list.viewContacts();
break;
case "3":
System.exit(0);
break;
default:
System.out.println("Error");
break;
}

}
}

public ContactList() {
this.contactlist = new ArrayList<>();
}

public void addContact() throws IOException {
BufferedReader keyIn;
keyIn = new BufferedReader(new InputStreamReader(System.in));
String firstName;
String lastName;
String address;
String email;
String phone;
String jobTitle;
String organization;
String dateOfBirth;

Scanner input = new Scanner(System.in);
System.out.println("Please enter Specify the contact type (1) Personal
or (2) Business: ");
int contactType = input.nextInt();
if (contactType == 1) {
System.out.print("First Name: ");
firstName = keyIn.readLine();
System.out.print("Last Name: ");
lastName = keyIn.readLine();
System.out.print("Address: ");
address = keyIn.readLine();
System.out.print("E-mail address: ");
email = keyIn.readLine();
System.out.print("Phone number: ");
phone = keyIn.readLine();
System.out.print("Date of Birth (MM/DD/YYYY): ");
dateOfBirth = keyIn.readLine();

PersonalContact entry;
entry = new PersonalContact(firstName, lastName, address, email,
phone, dateOfBirth);
contactlist.add(entry);
top++;
try {
entry.write();
} catch (Exception e) {
}

} else if (contactType == 2) {
System.out.print("First Name: ");
firstName = keyIn.readLine();
System.out.print("Last Name: ");
lastName = keyIn.readLine();
System.out.print("Address: ");
address = keyIn.readLine();
System.out.print("E-mail address: ");
email = keyIn.readLine();
System.out.print("Phone number: ");
phone = keyIn.readLine();
System.out.print("Job Title: ");
jobTitle = keyIn.readLine();
System.out.print("Organization: ");
organization = keyIn.readLine();

BusinessContact entry;
entry = new BusinessContact(firstName, lastName, address, email,
phone, jobTitle, organization);
contactlist.add(entry);
top++;
try {
entry.write();
} catch (Exception e) {
}

}

}

public void viewContacts() {
for (int index = 0; index < top; index++) {
System.out.println((index + 1) + " First Name " +
contactlist.get(index).getFirstName());
System.out.println("Last Name " + contactlist.get(index).getLastName());
System.out.println("Address: " + contactlist.get(index).getAddress());
System.out.println("E-mail: " + contactlist.get(index).getEmail());
System.out.println("Phone: " + contactlist.get(index).getPhone());
System.out.println("Job Title " + contactlist.get(index).getJobTitle());
System.out.println("Organization " + contactlist.get(index).
getOrganization());
System.out.println("Date of Birth " + contactlist.get(index).
getDateOfBirth());
}
}
}

联系类(class):

package contactlist;

public class Contact {
private String firstName;
private String lastName;
private String address;
private String email;
private String phone;

public Contact(String firstName, String lastName, String address, String email, String phone){
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.email = email;
this.phone = phone;
}

public String getfirstName() {
return this.firstName;
}

public String setfirstName(){
return (this.firstName = firstName);
}

public String getlastName() {
return this.lastName;
}

public String setlastName(){
return (this.lastName = lastName);
}

public String getAddress() {
return this.address;
}

public String setAddress(){
return (this.address = address);
}

public String getEmail() {
return this.email;
}

public String setEmail(){
return (this.email = email);
}

public String getPhone() {
return this.phone;
}

public String setPhone(){
return (this.phone = phone);
}

String getFirstName() {
return firstName;
}

String getLastName() {
return lastName;
}

String getJobTitle() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}

String getOrganization() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}

String getDateOfBirth() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}

}

业务联系人子类:

package contactlist;

public class BusinessContact extends Contact {

private String jobTitle;
private String organization;

public BusinessContact(String firstName, String lastName, String address,
String email, String phone, String jobTitle, String organization) {
super(firstName, lastName, address, email, phone);
this.jobTitle = jobTitle;
this.organization = organization;
}

public String getJobTitle() {
return jobTitle;
}

public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}

public String getOrganization() {
return organization;
}

public void setOrganization(String organization) {
this.organization = organization;
}

void write() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}

}

个人联系人子类:

package contactlist;

public class PersonalContact extends Contact {

private String dateOfBirth;

public PersonalContact(String firstName, String lastName, String address,
String email, String phone, String dateOfBirth) {
super(firstName, lastName, address, email, phone);
this.dateOfBirth = dateOfBirth;
}

public String getDateOfBirth() {
return dateOfBirth;
}

public void setDateOfBirth(String dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}

void write() {
throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
}

最佳答案

首先,基类中不应该有组织、职务和出生日期的 getter,因为这些是各个派生类的属性。您应该做的是重写 viewContacts 方法并首先调用 super.override 然后显示派生类成员

    package contactlist;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ContactList {

/*ArrayList<List.Contact> contactlist;*/

List<Contact> contactlist = new ArrayList<>();


/* Contact contact; */
private int top = 0;

public static void main(String[] args) throws IOException {
/* Contact contact;
contact = new Contact();
List.Contact c;
c = contact; */
ContactList list = new ContactList();

BufferedReader keyIn;
keyIn = new BufferedReader(new InputStreamReader(System.in));
String choose = "";
while (true) {

System.out.println("\n[1] Add contact");
System.out.println("[2] View all contacts");
System.out.println("[3] Quit");
System.out.print("Choose : ");

try {
choose = keyIn.readLine();
} catch (IOException e) {

System.out.println("Error");
}
switch (choose) {
case "1":
list.addContact();
break;
case "2":
list.viewContacts();
break;
case "3":
System.exit(0);
break;
default:
System.out.println("Error");
break;
}

}
}

public ContactList() {
this.contactlist = new ArrayList<>();
}

public void addContact() throws IOException {
BufferedReader keyIn;
keyIn = new BufferedReader(new InputStreamReader(System.in));
String firstName;
String lastName;
String address;
String email;
String phone;
String jobTitle;
String organization;
String dateOfBirth;

Scanner input = new Scanner(System.in);
System.out.println("Please enter Specify the contact type (1) Personal
or (2) Business: ");
int contactType = input.nextInt();
if (contactType == 1) {
System.out.print("First Name: ");
firstName = keyIn.readLine();
System.out.print("Last Name: ");
lastName = keyIn.readLine();
System.out.print("Address: ");
address = keyIn.readLine();
System.out.print("E-mail address: ");
email = keyIn.readLine();
System.out.print("Phone number: ");
phone = keyIn.readLine();
System.out.print("Date of Birth (MM/DD/YYYY): ");
dateOfBirth = keyIn.readLine();

PersonalContact entry;
entry = new PersonalContact(firstName, lastName, address, email,
phone, dateOfBirth);
contactlist.add(entry);
top++;
try {
entry.write();
} catch (Exception e) {
}

} else if (contactType == 2) {
System.out.print("First Name: ");
firstName = keyIn.readLine();
System.out.print("Last Name: ");
lastName = keyIn.readLine();
System.out.print("Address: ");
address = keyIn.readLine();
System.out.print("E-mail address: ");
email = keyIn.readLine();
System.out.print("Phone number: ");
phone = keyIn.readLine();
System.out.print("Job Title: ");
jobTitle = keyIn.readLine();
System.out.print("Organization: ");
organization = keyIn.readLine();

BusinessContact entry;
entry = new BusinessContact(firstName, lastName, address, email,
phone, jobTitle, organization);
contactlist.add(entry);
top++;
try {
entry.write();
} catch (Exception e) {
}

}

}

public void view() {
for (int index = 0; index < top; index++) {
contactlist.get(index).viewContact();
}
}
}

联系方式:

package contactlist;

public class Contact {
private String firstName;
private String lastName;
private String address;
private String email;
private String phone;

public Contact(String firstName, String lastName, String address, String
email, String phone){
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.email = email;
this.phone = phone;
}

public String getfirstName() {
return this.firstName;
}

public String setfirstName(){
return (this.firstName = firstName);
}

public String getlastName() {
return this.lastName;
}

public String setlastName(){
return (this.lastName = lastName);
}

public String getAddress() {
return this.address;
}

public String setAddress(){
return (this.address = address);
}

public String getEmail() {
return this.email;
}

public String setEmail(){
return (this.email = email);
}

public String getPhone() {
return this.phone;
}

public String setPhone(){
return (this.phone = phone);
}

String getFirstName() {
return firstName;
}

String getLastName() {
return lastName;
}

public void viewContacts() {
System.out.println(this.getfirstName());
System.out.println(this.getlastName());
.....
}

业务联系人子类:

package contactlist;

public class BusinessContact extends Contact {

private String jobTitle;
private String organization;

public BusinessContact(String firstName, String lastName, String address,
String email, String phone, String jobTitle, String organization) {
super(firstName, lastName, address, email, phone);
this.jobTitle = jobTitle;
this.organization = organization;
}

public String getJobTitle() {
return jobTitle;
}

public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}

public String getOrganization() {
return organization;
}

public void setOrganization(String organization) {
this.organization = organization;
}

void write() {
throw new UnsupportedOperationException("Not supported yet."); //To
change body of generated methods, choose Tools | Templates.
}

public void viewContacts() {
super.viewContacts();
System.out.println(this.getOrganization());
System.out.println(this.getJobTitle());
}
}

类似地,你可以为其他类(class)做同样的事情。我只是提供一个想法。

关于java - 在java中显示联系人列表程序中的联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28459260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com