📅 공부 기간 : 07.19(금)

EnrollMain 동작:
메인 메뉴를 출력 -> 사용자가 1을 입력하면 Reader 객체를 생성, 2를 입력하면 Worker 객체를 생성 -> Speakable 배열에 저장한 후, 2번의 객체 등록이 끝나면 Speakable 배열에서 객체를 하나씩 꺼내어 speak() 메소드 호출 결과를 화면에 출력

package enrollprogram;
public class Man {
private String name;
public Man(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
인터페이스에는 추상 메소드만!
package enrollprogram;
public interface Speakable {
public String speak();
}
Man을 상속(extends)하고 Speakable을 구현(implements)
package enrollprogram;
public class Reader extends Man implements Speakable{
public Reader(String name) {
super(name);
}
public String speak() {
return super.getName() + " 독자는 Java를 잘하고 싶다.";
}
}
Man을 상속(extends)하고 Speakable을 구현(implements)
package enrollprogram;
public class Worker extends Man implements Speakable{
public Worker(String name) {
super(name);
}
// super 안 넣어도 자동으로 인식
public String speak() {
return super.getName() + " 일꾼은 맡은 일을 열심히 한다.";
}
}
package enrollprogram;
import java.util.Scanner;
public class EnrollMain {
public static void main(String[] args) {
Scanner keyin = new Scanner(System.in);
Speakable[] man = new Speakable[2]; // 두 명의 정보를 저장
System.out.println("Speaker 등록 메인 메뉴입니다. 단 2명만 등록할 수 있습니다.");
int count = 0;
String choice;
while(true) {
System.out.println("어떤 Speaker를 등록하는 지 선택하세요.");
System.out.println("1. Reader 등록");
System.out.println("2. Worker 등록");
choice = keyin.next();
switch(choice) {
case "1" : {
System.out.println("이름을 입력하세요. ");
String name = keyin.next();
man[count++] = new Reader(name);
break;
}
case "2" : {
System.out.println("이름을 입력하세요. ");
String name = keyin.next();
man[count++] = new Worker(name);
break;
}
default :
System.out.println("잘못된 선택입니다. 다시 선택해주세요.");
}
if (count == 2) {
System.out.println("두 명 Speaker의 등록이 완료되었습니다. 이제 Speaker들의 speak 실행 결과입니다.");
for (int i = 0; i<count; ++i) {
System.out.println(man[i].speak());
}
return;
}
}
}
}