所以前几天我打开了一个问题,我认为我能够解决问题,但我知道发生了什么,但现在我遇到了一个新问题。我是编程新手,这是我正在上课的。我正在尝试创建一个使用继承,多态和集合的联系人列表。我需要一个存储两种联系人的联系人列表:商业和个人。我需要提示1添加联系人然后询问1个人或2个人。提示2将允许用户显示所选联系人的输出,提示3将退出。
我构建了以下类和子类。我很确定这些类是正确构建的但是在添加任何类型的联系人之后,当我选择2以便查看我在线程中获得异常时#34; main" java.lang.UnsupportedOperationException:尚不支持。对此有任何帮助都很棒。
我为长篇大论道歉,但我认为我应该展示一切。
这是我的主要课程:
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).viewContacts();
}
}
private void viewContacts() {
throw new UnsupportedOperationException("Not supported yet."); //To
change body of generated methods, choose Tools | Templates.
}
}
联系班级:
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());
System.out.println(this.getAddress());
System.out.println(this.getEmail());
System.out.println(this.getPhone());
}
}
业务联系人子类:
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());
}
}
Personal Contact子类:
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.
}
public void viewContacts() {
super.viewContacts();
System.out.println(this.dateOfBirth);
}
}
答案 0 :(得分:0)
viewContacts()
方法的实现除了抛出此异常外什么都不做。如果您想要不同的行为,则必须实施它。例如,一个简单的实现:
private void viewContacts() {
System.out.println (contactlist);
}