java - pet 예제

imjingu·2023년 8월 24일
0

개발공부

목록 보기
411/481
package chapter20230823.test03;

public class Pet {
	private String name; // 애완동물의 이름
	private String masterName; // 주인의 이름
	
	public Pet(String name, String masterName) { // 생성자
		this.name = name; // 애완동물의 이름
		this.masterName = masterName; // 주인의 이름
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getMasterName() {
		return masterName;
	}
	
	public void introduce() {
		System.out.println(" 내 이름은 " + name + " 입니다.");
		System.out.println(" 주인님은 " + masterName + " 입니다.");
	}

}
package chapter20230823.test03;

public class RobotPet extends Pet{ // Pet 상속받음
	public RobotPet(String name, String masterName) { // 생성자
		super(name, masterName); // 상위클래스의 생성자
	}
	
	@Override
	public void introduce() { // 자기소개
		System.out.println(" 저는 로봇입니다. 이름은 " + getName() + " 입니다.");
		System.out.println(" 주인님은 " + getMasterName() + " 입니다.");
	}
	
	public void work(int sw) { // 집안일을 한다
		switch (sw) {
		case 0:
			System.out.println("청소를 합니다.");
			break;
		case 1:
			System.out.println("빨래를 합니다.");
			break;
		case 2:
			System.out.println("밥을 짓습니다.");
			break;
		}
	}

}
package chapter20230823.test03;

public class test01 {

	public static void main(String[] args) {
		// 애완동물 클래스의 이용 예 (다형성의 검증)
		// 다형성의 오버라이딩
		Pet kurt = new Pet("kurt", "아이");
		kurt.introduce();
		System.out.println();
		
		RobotPet r2d2 = new RobotPet("R2D2", "루크"); //RobotPet 상속
		r2d2.introduce();
		r2d2.work(0);
		System.out.println();
		
		Pet toy = new RobotPet("toy", "아이2");
		toy.introduce(); // 자식클래스에 있는 introduce 실행
//		toy.work(0); // 부모클래스에는 선언되지않아 접근 불가능
		System.out.println();
		
		Pet pet = r2d2;
		pet.introduce(); // 자식클래스 실행
		
		System.out.println();
		r2d2.setName("아이로봇");
		r2d2.introduce();
		pet.introduce();
	}

}

package chapter20230823.test03;

public class test02 {
	static void intro(Pet pet) {
		pet.introduce();
	};
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Pet[] pets = { // 배열생성
				new Pet("Kurt" , "아이"),
				new RobotPet("R2D2", "루크"),
				new Pet("마이클", "영진"),
		};
	
		
		for(Pet pet : pets) { // for each 반복문 사용
			intro(pet); // pet가 참조하는 인스턴스에 자기소개를 시킨다.
			System.out.println();
		}
	}
}

0개의 댓글