Добрый день! Я хочу поделиться своим опытом написания программы в Java, которая работает как телефонная книга. Я использовал класс PhoneBook для хранения и работы с абонентами.Сначала я создал класс PhoneBook с конструктором, который инициализирует пустой список абонентов⁚
java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class PhoneBook {
private List
public PhoneBook {
this.contacts new ArrayList<>;
}
// остальные методы класса PhoneBook
}
Затем я создал класс Contact для представления абонента в телефонной книге⁚
java
public class Contact {
private String name;
private String phoneNumber;
public Contact(String name, String phoneNumber) {
this.name name;
this.phoneNumber phoneNumber;
}
// геттеры и сеттеры для name и phoneNumber
}
Далее я добавил несколько методов в класс PhoneBook, чтобы программа могла выполнять все требуемые действия⁚
java
public void addContact(String name, String phoneNumber) {
contacts.add(new Contact(name, phoneNumber));
}
public void findContactByName(String name) {
boolean found false;
for (Contact contact ⁚ contacts) {
if (contact.getName.equalsIgnoreCase(name)) {
System.out.println(contact.getPhoneNumber);
found true;
}
}
if (!found) {
System.out.println(″Абонент с именем ″ name ″ не найден.″);
}
}
public void findContactByPhoneNumber(String phoneNumber) {
boolean found false;
for (Contact contact ⁚ contacts) {
if (contact.getPhoneNumber.equals(phoneNumber)) {
System.out.println(contact.getName);
found true;
}
}
if (!found) {
System.out.println(″Абонент с номером ″ phoneNumber ″ не найден.″);
}
}
public void printAllContacts {
Collections.sort(contacts, (c1, c2) -> c1.getName.compareToIgnoreCase(c2.getName));
for (Contact contact ⁚ contacts) {
System.out.println(contact.getName ″⁚ ″ contact.getPhoneNumber);
}
}
Наконец, я создал основной класс, который обрабатывает команды пользователя⁚
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
PhoneBook phoneBook new PhoneBook;
Scanner scanner new Scanner(System.in);
while (true) {
String command scanner.nextLine;
String[] parts command.split(″ ″);
if (parts[0].equalsIgnoreCase(″add″)) {
phoneBook.addContact(parts[1]٫ parts[2]);
} else if (parts[0].equalsIgnoreCase(″find″)) {
if (parts[1].equalsIgnoreCase(″name″)) {
phoneBook.findContactByName(parts[2]);
} else if (parts[1].equalsIgnoreCase(″number″)) {
phoneBook.findContactByPhoneNumber(parts[2]);
}
} else if (parts[0].equalsIgnoreCase(″list″)) {
phoneBook.printAllContacts;
}
}
}
}
Теперь программа работает как телефонная книга. Пользователь может вводить новые имена и номера телефонов, и программа будет сохранять их. Если пользователь вводит существующее имя или номер, программа выводит соответствующую информацию. При вводе команды ″list″ программа печатает список всех абонентов в алфавитном порядке.
Я надеюсь, мой опыт будет полезен для вас при написании подобной программы на Java. Удачи вам!