실행 예시

인원수>>3

이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>홍길동 111-1111

이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>이순신 333-3333

이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>유관순 555-5555

저장되었습니다...

검색할 이름>>이순신

이순신의 번호는 333-3333 입니다.

검색할 이름>>그만


import java.util.Scanner;


class Phone { // 사람의 정보 저장을 위한 클래스

private String name;

private String tel;


public Phone(String name, String tel) {

this.name = name;

this.tel = tel;

}


public String getName() {

return name;

}


public String getTel() {

return tel;

}

}


class PhoneBook {

private Scanner scanner;

private Phone[] pArray;


public PhoneBook() {

scanner = new Scanner(System.in);

}


void read() {

// 저장할 사람의 수(n)를 입력받고,

System.out.print("인원수>> ");

int n = scanner.nextInt();

// n 명을 저장할 배열 선언

Phone[] pArray = new Phone[n];

// 반복문을 통해서 이름, 전화 번호 입력받고, Phone 객체 생성

for (int i = 0; i < pArray.length; i++) {

System.out.print("이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>");

String name = scanner.next();

String tel = scanner.next();

pArray[i] = new Phone(name, tel);

}

System.out.println("저장되었습니다...");

}


String search(String name) {

// 반복문을 통해서 Phone객체 배열을 순회하여, name 검색 및 리턴, 없을 경우에 null 리턴

String name_return = "";

for (int i = 0; i < pArray.length; i++) {

if (pArray[i].getName().equals(name)) {

name_return = pArray[i].getTel();

break;

}


}

return name_return;

}


void run() {

read();

while (true) {

System.out.print("검색할 이름>>");

String name = scanner.next();

if (name.equals("그만"))

break;

String tel = search(name);

if (tel == null)

System.out.println(name + " 이 없습니다.");

else

System.out.println(name + "의 번호는 " + tel + " 입니다.");

}


}

}


public class test3 {

public static void main(String[] args) {

new PhoneBook().run();

}

}


인원수>> 2

이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>이순신 111-1111

이름과 전화번호(이름과 번호는 빈 칸없이 입력)>>홍길동 333-3333

저장되었습니다...

검색할 이름>>이순신

Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "this.pArray" is null

at ch02.PhoneBook.search(test3.java:62)

at ch02.PhoneBook.run(test3.java:80)

at ch02.test3.main(test3.java:92)


이렇게 오류가 떠요