Java 에러 : Phone cannot be resolved to a type

조회수 910회

자꾸 Phone cannot be resolved to a type 에러가 뜨는데 어떻게 해결해야할지 모르겟습니다

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class T11_PhoneBookTest {
    private Scanner scan;
    private  Map<String, Phone> phoneBookMap;

    public T11_PhoneBookTest() {
        scan = new Scanner(System.in);
        phoneBookMap = new HashMap<>();
    }

    // 메뉴 메소드
    public void displayMenu(){
        System.out.println("==========================");
        System.out.println("   다음 메뉴중 하나를 선택하세요.");
        System.out.println("==========================");
        System.out.println(" 1. 회원 추가");
        System.out.println(" 2. 회원 목록 보기");
        System.out.println(" 3. 회원 정보 수정하기");
        System.out.println(" 4. 회원 삭제");
        System.out.println(" 5. 종료");
    }

    // 프로그램을 시작 메서드
    public void phoneBookStart(){

        while(true){

            displayMenu();  // 메뉴 출력

            int menuNum = scan.nextInt();   // 메뉴 입력

            switch(menuNum){
                case 1 : insert();      // 회원 추가 
                    break;
                case 2 : displayAll();  // 회원 목록 보기 
                    break;
                case 3 : update();      // 회원 정보 수정하기 
                    break;
                case 4 : delete();      // 회원 삭제 
                    break;
                case 0 :                // 종료
                    System.out.println("종료되었습니다.");
                    return;
                default :
                    System.out.println("잘못 입력했습니다. 다시입력하세요.");
            } 
        } 
    }

//  회원을 추가하는 메서드 
    private void insert() {
        System.out.println();
        System.out.println("등록할 회원의 정보를 입력하세요");
        System.out.print("이름: ");
        String name = scan.next();

        // 이미 등록된 사람인지 검사 
        // get()메서드로 값을 가져올 때 가져올 자료가 없으면 null을 반환한다.
        if(phoneBookMap.get(name) != null) {
            System.out.println(name + " 님은 이미 등록된 회원입니다.");
            return; //메서드 종료
        }

        System.out.print("전화번호(ex: 01012345678):     ");
        String tel = scan.next();

        System.out.print("주소:    ");
        String addr = scan.next();

        System.out.print("종류(ex.가족, 친구,     기타):    ");
        String kind = scan.nextLine();
        scan.nextLine();    // 입력버퍼에 남아 있는 엔터키 값까지 읽어와 버리는 역할을 함.
        // next()호출 후 nextLine()호출 시 혹시 남아있을지 모름
        // 엔터값을 제거하기 위해 한번 호출한다.

        phoneBookMap.put(name, new Phone(name, tel, addr, kind));
        }

    public static void main(String[] args) {
        new T11_PhoneBookTest().phoneBookStart();
    }

//  회원 목록을 보는 메서드  
    private void displayAll() {
        Set<String> keySet = phoneBookMap.keySet();

        System.out.println("총 " + keySet.size() + " 명의 회원이 저장되어 있습니다.");
        System.out.println("회원정보 :   \t이름 = \t전화번호 : \t주소 : ");

        if(keySet.size() == 0) {
            System.out.println("등록된 전화번호 정보가 없습니다.");
        } else {
            Iterator<String> it = keySet.iterator();

            int cnt = 0;
            while(it.hasNext()) {
                cnt++;
                String name = it.next();
                Phone p = phoneBookMap.get(name);
                System.out.println(" " + cnt + "\t" + p.getName() + "\t" + p.getTel() + "\t" + p.getAddr() + p.getKind() + "\t");
            }
        }

    }

//  회원정보를 수정하는 메서드 
    private void update() {
        System.out.println();
        System.out.println("수정할 전화번호 이름을 입력하세요");
        System.out.print("이름:   ");
        String name = scan.next();

        // 수정할 자료가 있는지 검사
        if(phoneBookMap.get(name) == null) {
            System.out.println(name + " 해당하는 회원 정보가 없습니다.");
            return; //메서드 종료
        }

        System.out.print("전화번호(ex: 01012345678):     ");
        String tel = scan.next();

        System.out.print("주소:    ");
        scan.next();
        String addr = scan.next();

        System.out.print("종류(ex.가족, 친구,     기타):    ");
        String kind = scan.nextLine();  // 입력버퍼에 남아 있는 엔터키 값까지 읽어와 버리는 역할을 함.
        // next()호출 후 nextLine()호출 시 혹시 남아있을지 모름
        // 엔터값을 제거하기 위해 한번 호출한다.


        Phone p = new Phone(name, tel, addr, kind);
        phoneBookMap.put(name, p);

        System.out.println("수정이 완료되었습니다.");

    }

//  회원정보를 삭제하는 메서드 

    private void delete() {
        System.out.println();
        System.out.println("삭제할 회원 이름을 입력하세요");
        System.out.println("이름 : ");
        String name = scan.next();
        String tel = scan.next();
        String addr = scan.next();
        String kind = scan.next();

        System.out.println("이름 = " + name +", 전화번호 : " + tel + ", 주소 : "+ addr + ", 조" );

        // remove(key) => 삭제 성공하면 삭제된 value값만 반환하고, 실패하면 null 반환
        if(phoneBookMap.remove(name) == null) {
            System.out.println(name + " 씨는 등록된 사람이 아닙니다.");
        } else {
            System.out.println("삭제가 완료되었습니다");

    }



// 회원정보를 저장하기 위한 클라스
class Phone{
    private String name;    // 이름
    private String tel;     // 전화번호
    private String addr;    // 주소
    private String kind;    //종류 

    public Phone(String name, String tel, String addr, String kind) {
        super();
        this.name = name;
        this.tel = tel;
        this.addr = addr;
        this.kind = kind;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getAddr() {
        return addr;
    }
    public void setAddr(String addr) {
        this.addr = addr;
    }
    public String getKind() {
        return kind;
    }
    public void setkind(String kind) {
        this.kind = kind;
    }
    @Override
    public String toString() {
        return "Phone [name=" + name + ", tel=" + tel + ", addr=" + addr + ", kind=" + kind + "]";
    }
    }
}
}   

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)