Создание списка контактов с помощью java и объектно-ориентированного

Вопрос: Я новичок в программировании и объектно-ориентированном дизайне. Это мое последнее требование, чтобы закончить степень бакалавра (не в программировании). Я так смущен тем, как сделать объектно-ориентированную работу, и ничто, на которое я смотрю, не помогает. Назначение - создать список контактов, который использует наследование, полиморфизм и коллекции. Мне нужен список контактов, в котором хранятся два типа

Вопрос:

Я новичок в программировании и объектно-ориентированном дизайне. Это мое последнее требование, чтобы закончить степень бакалавра (не в программировании). Я так смущен тем, как сделать объектно-ориентированную работу, и ничто, на которое я смотрю, не помогает. Назначение – создать список контактов, который использует наследование, полиморфизм и коллекции. Мне нужен список контактов, в котором хранятся два типа контактов: деловые и личные. 1. Запросить выбор контакта для добавления или отображения. 2. Запросить доступ к контактной информации. 3. Запрос, который отобразит вывод выбранного контакта.

У меня есть следующий класс и подклассы. Я зациклен на том, как я должен читать входы к конкретным арраистам. Я даже не знаю, правильно ли построены классы. Любая помощь была бы потрясающей, мне просто нужно пройти через это, тогда я с удовольствием оставлю программу для тех, кто знает, что они делают.

Это то, что у меня есть для моего родительского класса:

package ooo1; public abstract class Contact { private String contactId; private String firstName; private String lastName; private String address; private String phoneNumber; private String emailAddress; public Contact(String contactId,String firstName,String lastName, String address, String phoneNumber, String emailAddress) { this.contactId = contactId; this.firstName = firstName; this.lastName = lastName; this.address = address; this.phoneNumber = phoneNumber; this.emailAddress = emailAddress; } public void setContactId(String input){ this.contactId = input; } public String getContactId(){ return contactId; } public void setFirstName(String input){ this.firstName = input; } public String getFirstName(){ return firstName; } public void setLastName(String input){ this.lastName = input; } public String getLastName(){ return lastName; } public void setAddress(String input){ this.address = input; } public String getAddress(){ return address; } public void setPhoneNumber(String input){ this.phoneNumber = input; } public String getPhoneNumber(){ return phoneNumber; } public void setEmailAddress(String input){ this.emailAddress = input; } public String getEmailAddress(){ return emailAddress; } void displayContact(){ System.out.println(«Contact ID:» + contactId + » First Name:» + firstName + » Last Name:» + lastName); System.out.println(«Address:» + address); System.out.println(«Phone Number:» + phoneNumber); System.out.println(«Email Address:» + emailAddress); } }

Это один из моих подклассов:

package ooo1; public class PersonalContact extends Contact { private String dateofBirth; public PersonalContact(String contactId, String firstName, String lastName, String address, String phoneNumber, String emailAddress, String dateofBirth){ super(contactId, firstName, lastName, address, phoneNumber, emailAddress); this.dateofBirth = dateofBirth; } public void setDateofBirth(String input){ this.dateofBirth=input; } public String getDateofBirth(){ return this.dateofBirth; } }

Это мой другой подкласс:

package ooo1; public class BusinessContact extends Contact { private String jobTitle; private String organization; public BusinessContact(String contactId, String firstName, String lastName, String address, String phoneNumber, String emailAddress, String jobTitle, String organization){ super(contactId, firstName, lastName, address, phoneNumber, emailAddress); this.jobTitle = jobTitle; this.organization = organization; } public void setJobTitle(String input){ this.jobTitle = input; } public String getJobTitle(){ return this.jobTitle; } public void setOrganization(String input){ this.organization = input; } public String getOrganization(){ return this.organization; } }

Это то, что у меня есть для Main, что так неправильно в этот момент, я верю:

package ooo1; import java.util.ArrayList; import java.util.Scanner; public class ContactList { public static void main(String[] args) { ArrayList<PersonalContact> personalList = new ArrayList<PersonalContact>(); Scanner input = new Scanner(System.in); System.out.println(«Please enter ContactId : «); String contactId = input.nextLine(); System.out.println(«Please enter First Name : «); String firstName = input.nextLine(); System.out.println(«Please enter Last Name : «); String lastName = input.nextLine(); System.out.println(«Please enter Address : «); String address = input.nextLine(); System.out.println(«Please enter Phone Number : «); String phoneNumber = input.nextLine(); System.out.println(«Please enter Email Address : «); String emailAddress = input.nextLine(); System.out.println(«Please enter Birthday: «); String dateofBirth = input.nextLine(); } } Лучший ответ:

У вас есть кусочки на месте, вам просто нужно собрать их вместе. Во-первых, подумайте о том, что используется List. Он должен содержать оба типа контактов, однако аргумент его типа использует производный тип PersonalContact. Вместо этого используйте базовый класс Contact

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

Затем, похоже, вы начинаете собирать информацию о контакте с конечным пользователем через консоль. Прежде чем делать это, вы можете спросить, какой тип контакта вводится, возможно, укажите вариант ввода 1 для личного контакта или 2 для делового контакта. Затем соберите информацию, относящуюся к типу контакта, который они выбрали.

Scanner input = new Scanner(System.in); System.out.println(«Please enter Specify the contact type (1 Personal, 2 Business) : «); int contactType = input.nextInt(); //collect data common to both types if(contactType == 1){ //collect information specific to personal } else if(contactType ==2){ //collect information specific to business }

Затем вам нужно повернуть собранные данные в фактические объекты, используя конструкторы. Это нужно сделать условно и фактически может быть частью последнего раздела, если все сделано правильно.

Contact contact; if(contactType == 1){ contact = new PersonalContact(/*arguments here*/); } else{ contact = new BusinessContact(/*arguments here*/); }

Затем закончите, добавив контакт в свой список:

contacts.add(contact); Ответ №1/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package javaprac; /** * * @author Arijit */ public class Contact { private String name; private int number; public Contact(int number,String name) { this.name = name; this.number = number; } public String getName() { return name; } public int getNumber() { return number; } public static Contact createContact(int number, String name){ return new Contact(number,name); } }

Это класс Contact, который определяется именем контакта и контактным номером. Затем мы разработаем класс MobilePhone, который будет иметь число (необязательно) и arraylist контактов.

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package javaprac; import java.util.ArrayList; /** * * @author Arijit */ class MobilePhone1 { public int mynumber; public ArrayList < Contact > contacts; public MobilePhone1(int mynumber) { this.mynumber = mynumber; this.contacts = new ArrayList < Contact > (); } public Boolean addContact(Contact contact) { if (findPosition(contact) >= 0) { System.out.println(«Contact already is phone»); return false; } else { contacts.add(contact); } return true; } public ArrayList < Contact > getContacts() { return contacts; } public void updateContact(Contact oldContact, Contact newContact) { if (findPosition(oldContact) >= 0) { contacts.set(findPosition(oldContact), newContact); } else { System.out.println(«Contact does not exist»); } } public void removeContact(Contact contact) { if (findPosition(contact) >= 0) { contacts.remove(findPosition(contact)); } else { System.out.println(«No contact»); } } public int searchContact(Contact contact) { int position = findPosition(contact); if (contacts.contains(contact)) { System.out.println(«Item found at position»); return position; } System.out.println(«Not found»); return -1; } private int findPosition(Contact contact) { return this.contacts.indexOf(contact); } private int findPosition(String name) { for (int i = 0; i < contacts.size(); i++) { Contact contact = this.contacts.get(i); if (contact.getName().equals(name)) { return i; } } return -1; } } public class MobilePhone { public static void main(String args[]) { Boolean quit = false; int choice = 0; java.util.Scanner sc = new java.util.Scanner(System.in); MobilePhone1 phone = new MobilePhone1(98312); //Contact newcontact = Contact.createContact(12345,»Arijt»); while (!quit) { System.out.println(«Enter your choice»); choice = sc.nextInt(); sc.nextLine(); switch (choice) { case 0: System.out.println(«Enter the number of Contacts»); int count = sc.nextInt(); for (int i = 0; i < count; i++) { System.out.println(«Enter number»); int phoneNumber = sc.nextInt(); System.out.println(«Enter Name»); sc.nextLine(); String name = sc.nextLine(); Contact newcontact = Contact.createContact(phoneNumber, name); phone.addContact(newcontact); } break; case 1: int size = phone.getContacts().size(); System.out.println(size); for (int i = size — 1; i >= 0; i—) { phone.removeContact(phone.getContacts().get(i)); } System.out.println(phone.getContacts().isEmpty()); break; case 2: for (int i = 0; i < phone.getContacts().size(); i++) { System.out.println(phone.searchContact(phone.getContacts().get(i))); } break; case 3: //Contact newcontact1 = Contact.createContact(12345,»Buzz»); System.out.println(«Enter the Contact name you want to update»); String oldContactName = sc.nextLine(); for (int j = 0; j < phone.getContacts().size(); j++) { if (phone.getContacts().get(j).getName().equals(oldContactName)) { System.out.println(«Enter the new Contact name»); String newName = sc.nextLine(); System.out.println(«Enter the new Contact number»); int newNumber = sc.nextInt(); phone.updateContact(phone.getContacts().get(j), Contact.createContact(newNumber, newName)); } else { System.out.println(«You are looking for the wrong contact»); } } for (int i = 0; i < phone.getContacts().size(); i++) { System.out.println(phone.getContacts().get(i).getName() + «,» + phone.getContacts().get(i).getNumber()); } break; case 4: if(phone.getContacts().isEmpty()){ System.out.println(«Emtpty contact list»); } else { System.out.println(«Contact list»); for (int i = 0; i < phone.getContacts().size(); i++) { System.out.println(«Name: «+phone.getContacts().get(i).getName() + «,Phone Number: » + phone.getContacts().get(i).getNumber()); } } break; case 6: System.out.println(«Enter 0 for adding contactn»); System.out.println(«Enter 1 for removing every contactn»); System.out.println(«Enter 2 for searching contactn»); System.out.println(«Enter 3 for updating contactn»); System.out.println(«Enter 4 for viewing the contact listn»); System.out.println(«Enter 6 for exitingn»); System.out.println(«Enter 5 to see the instrusctions againn»); break; case 5: quit = true; break; } } } }

Оцените статью
Добавить комментарий