ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체와 객체배열 연습문제 (Phone, PhoneManager)
    학교/JAVA 2023. 10. 26. 02:44

    1. Phone 클래스를 작성하시오.

    1) 필드: 이름(name), 전화번호(tel)

    2) 생성자: 생성시 전달받은 값으로 이름, 전화번호 필드를 초기화 함

    3) toString() 메소드 정의

    package lab1;
    
    public class Phone {
    	private String name;
    	private String tel;
    	
    	public String getName() {
    		return name;
    	}
    	public String getTel() {
    		return tel;
    	}
    	
    	@Override
    	public String toString() {
    		return "Phone [name=" + name + ", tel=" + tel + "]";
    	}
    	
    	
    	public Phone(String name, String tel) {
    		this.name = name;
    		this.tel = tel;
    	}
    	
    	
    }

     

     

    2. PhoneManager 클래스를 작성하시오. main() 메소드를 가짐

    - 단, 한 사람의 전화번호는 하나의 객체로 다룬다.

    package lab1;
    
    import java.util.Scanner;
    
    public class PhoneManager {
    	 public static void main(String[] args) {
    		
    		 Scanner scr = new Scanner(System.in);
    		 
    		 System.out.println("인원수 >> ");
    		 int personNum = scr.nextInt(); 	// 인원수 읽어와서 변수 personNum에 저장
    		 scr.nextLine();	 //  정수 입력 후 남은 개행 문자를 소비합니다.
    		 
    		 Phone[] phone = new Phone[personNum];	 // 입력받은 인원수에 맞게 Phone 객체 배열을 생성
    		 
    		 for(int i = 0; i < personNum; i++) {	// 입력받은 인원수만큼 반복
    			 System.out.println("이름과 전화번호(번호는 연속적으로 입력) >> ");
    			 String name = scr.next();
    			 String tel = scr.next();
    			 
    			 phone[i] = new Phone(name, tel);	// 입력받은 이름, 전화번호로 Phone 객체 생성 후 배열에 저장
    		 }
    		 System.out.println("저장되었습니다.");
    		 
    		 while(true) {	// 무한루프 시작해 사용자가 이름 검색하는 기능 제공
    			 System.out.println("검색할 이름 >> ");
    			 String name = scr.next();
    			 
    			 if(name.equals("exit")) {
    				 System.out.println("프로그램이 종료되었습니다.");
    				 break;
    			 }
    			 
    			 boolean found = false;	// 이름 찾았는지 여부 나타내는 변수 found를 초기화
    			 
    			 for(int i = 0; i < phone.length; i++) {	// 배열의 모든 요소 반복하여 이름 검색
    				 String pName = phone[i].getName();	// Phone 객체에서 이름 가져와 pName 변수에 저장 
    				 if(pName.equals(name)) {	// 입력된 이름과 배열 이름 비교해 일치 경우 해당 전화번호 출력, found를 true로 설정
    					 System.out.println(phone[i].getName() + "의 번호는 " + 
    				 phone[i].getTel() + "입니다.");
    					 found = true;
    					 break;
    				 }
    			 }
    			 
    			 if(!found) {
    				 System.out.println(name + "님은 없는 정보입니다.");
    			 }
    			 scr.nextLine();
    		 }
    	 }	
    }

     

     

     

     

     

Designed by Tistory.