1. PhoneBookMain(1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | package phoneBook; import java.util.Scanner; class PhoneBook { String name; String number; } public class PhoneBookMain01 { public static void main(String[] args) { // #1. 전화번호 저장하기 Scanner sc = new Scanner(System.in); System.out.println(">>> 전화번호 저장하기 <<<"); // #1-1. 사용자 수 입력받기 System.out.print("사용자 수 입력: "); int num = Integer.parseInt(sc.nextLine()); // #1-2. 입력받은 수 만큼 객체 배열 생성하기 PhoneBook[] phoneBook = new PhoneBook[num]; // #1-3. 이름과 전화번호 입력받기 for (int i = 0; i < phoneBook.length; i++) { phoneBook[i] = new PhoneBook(); System.out.print((i + 1) + ". 이름 입력: "); phoneBook[i].name = sc.nextLine(); System.out.print((i + 1) + ". 번호 입력: "); phoneBook[i].number = sc.nextLine(); } System.out.println("저장 완료!"); // #2. 전화번호 검색하기 System.out.println(">>> 전화번호 검색하기 <<<"); while (true) { // #2-1. 이름 입력받기 System.out.print("검색할 이름 입력: "); String name = sc.nextLine(); // #2-2. 입력받은 내용이 stop이면, 프로그램 종료 if (name.equalsIgnoreCase("stop")) { System.out.println("프로그램 종료"); break; } // #2-3. 입력받은 이름을 토대로 전화번호 출력하기 int check = -1; for (int i = 0; i < phoneBook.length; i++) { if (name.equals(phoneBook[i].name)) { System.out.println(phoneBook[i].number); check = 1; } } // #2-4. 이름이 없는 경우, 안내메세지 출력하기 if (check == -1) { System.out.println("없는 이름입니다."); } } } } | cs |
2. PhoneBookMain(2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | package phoneBook; import java.util.Scanner; class PhoneBook { String name; String number; Scanner sc; PhoneBook[] phoneBook; public PhoneBook() { sc = new Scanner(System.in); } PhoneBook(String name, String number) { this.name = name; this.number = number; } void insert() { // #1. 전화번호 저장하기 Scanner sc = new Scanner(System.in); System.out.println(">>> 전화번호 저장하기 <<<"); // #1-1. 사용자 수 입력받기 System.out.print("사용자 수 입력: "); int num = Integer.parseInt(sc.nextLine()); // #1-2. 입력받은 수 만큼 객체 배열 생성하기 phoneBook = new PhoneBook[num]; // #1-3. 이름과 전화번호 입력받기 for (int i = 0; i < phoneBook.length; i++) { phoneBook[i] = new PhoneBook(); System.out.print((i + 1) + ". 이름 입력: "); phoneBook[i].name = sc.nextLine(); System.out.print((i + 1) + ". 번호 입력: "); phoneBook[i].number = sc.nextLine(); } System.out.println("저장 완료!"); } // insert() void search() { // #2. 전화번호 검색하기 System.out.println(">>> 전화번호 검색하기 <<<"); while (true) { // #2-1. 이름 입력받기 System.out.print("검색할 이름 입력: "); String name = sc.nextLine(); // #2-2. 입력받은 내용이 stop이면, 프로그램 종료 if (name.equalsIgnoreCase("stop")) { System.out.println("프로그램 종료"); break; } // #2-3. 입력받은 이름을 토대로 전화번호 출력하기 int check = -1; for (int i = 0; i < phoneBook.length; i++) { if (name.equals(phoneBook[i].name)) { System.out.println(phoneBook[i].number); check = 1; } } // #2-4. 이름이 없는 경우, 안내메세지 출력하기 if (check == -1) { System.out.println("없는 이름입니다."); } } // while } // search() void run() { insert(); search(); } } public class PhoneBookMain02 { public static void main(String[] args) { PhoneBook myPhoneBook = new PhoneBook(); myPhoneBook.run(); } } | cs |
# 설명
Line 9~10: Scanner sc와 PhoneBook 클래스 안에서 쓰이는 인스턴스 변수 PhoneBook[] phoneBook을 선언해준다.
Line 13: 기본 생성자 안에서 선언해놓은 Scanner sc를 초기화 해준다.
Line 57: equalsIgnoreCase(String): String의 대소문자 여부를 무시하고 문자열을 비교한다.
Line 79~82 : 생성자에서는 최대한 초기화 위주가 되야한다. 때문에 실질적으로 실행되는 부분은 이와 같은 run() 메서드 안에서 묶어 실행하는 것이 좋다.
'JAVA > JAVA1' 카테고리의 다른 글
JAVA1_day20 | 클래스 Class 연습문제 (4) (ATM) (0) | 2018.01.09 |
---|---|
JAVA1_day18 | 생성자 Constructor 연습문제 (0) | 2018.01.03 |
JAVA1_day17 | 추가공부 (0) | 2018.01.02 |
JAVA1_day17 | 클래스 Class 연습문제 (2) (0) | 2018.01.02 |
JAVA1_day17 | 메서드 오버로딩 (Method Overloading) (0) | 2018.01.02 |