본문 바로가기
IT/Java

Java (상속_친구정보 등록관리_저장,출력)

by hjshims 2021. 6. 11.

 

 

package Friend;

import java.util.Scanner;

//고교친구, 대학친구 정보 중에서 공통 데이터 표현을 위한 클래스
class Friend{
	protected String name;
	protected String phoneNum;
	protected String addr;
	
	//생성자
	public Friend(String name, String phone, String addr) {
		this.name = name;
		phoneNum = phone;
		this.addr = addr;
	}

	//전체 출력을 위한 재정의 할 메소드
	public void showData() {	//친구 기본정보 + 추가정보 출력하려고 만든 메소드
		System.out.println("이름: " + name);
		System.out.println("전화: " + phoneNum);
		System.out.println("주소: " + addr);
	}
	public void showBasicInfo() {	}	//기본정보만 출력하려고 만든 메소드
}

//고교친구
class highschool extends Friend{
	String job;
	//생성자
	public highschool(String name, String phone, String addr, String job) {
		super(name, phone, addr);
		this.job = job;
	}
	@Override
	public void showData() {
		// TODO Auto-generated method stub
		super.showData();
		System.out.println("직업: "+job);
	}
	@Override
	public void showBasicInfo() {
		System.out.println("이름: "+name);
		System.out.println("전화: "+phoneNum);
	}
}

//대학친구
class university extends highschool{
	String major;
	//생성자
	public university(String name, String phone, String addr, String job, String major) {
		super(name, phone, addr, job);
		this.major = major;
	}
	@Override
	public void showData() {
		// TODO Auto-generated method stub
		super.showData();
		System.out.println("전공: "+major);
	}
	@Override
	public void showBasicInfo() {
		// TODO Auto-generated method stub
		System.out.println("이름: "+name);
		System.out.println("전화: "+phoneNum);
	}
}

class menu{
	Scanner scan = new Scanner(System.in);
	Friend[] data = new Friend[100];
	int cnt = 0;
	boolean run = true;
	
	void menu() {
		while(true) {
			System.out.println("1. 고교 정보 저장");
			System.out.println("2. 대학 친구 저장");
			System.out.println("3. 전체 정보 출력");
			System.out.println("4. 기본 정보 출력");
			System.out.println("5. 프로그램 종료");
			System.out.print("선택> ");
			int select = scan.nextInt();
			
			switch(select) {
			case 1:
				high();
				break;
			case 2:
				univ();
				break;
			case 3:
				all();
				break;
			case 4:
				basic();
				break;
			case 5:
				System.out.println("프로그램 종료이 종료되었습니다.");
				System.exit(0);
			}
		}
		
	}
	void high() {	//1.고교정보저장
		System.out.print("이름: ");
		String name = scan.next();
		System.out.print("전화: ");
		String phone = scan.next();
		System.out.print("주소: ");
		String addr = scan.next();
		System.out.print("직업: ");
		String job = scan.next();
		
		data[cnt++] = new highschool(name,phone,addr,job);
		System.out.println("입력이 완료되었습니다!");
	}
	void univ() {	//2.대학친구저장
		System.out.print("이름: ");
		String name = scan.next();
		System.out.print("전화: ");
		String phone = scan.next();
		System.out.print("주소: ");
		String addr = scan.next();
		System.out.print("직업: ");
		String job = scan.next();
		System.out.print("학과: ");
		String major = scan.next();
		data[cnt++] = new university(name,phone,addr,job,major);
		System.out.println("입력이 완료되었습니다!");
		
	}
	void all() {	//3.전체정보출력
		for(int i=0; i<data.length; i++) {
			if(data[i] != null) {
				data[i].showData();
				System.out.println();
			}
		}
	}
	void basic() {	//4.기본정보출력
		for(int i=0; i<data.length; i++) {
			if(data[i] != null) {
				data[i].showBasicInfo();
				System.out.println();
			}
		}
	}

}
public class FriendInfo {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub	
		
		System.out.println("*** 메뉴를 선택하세요. ***");
		menu m = new menu();
		m.menu();
	}

}

 

<출력결과>