반응형

[쉽게 배우는 자바 프로그래밍] 

        Chapter 07. 추상 클래스와 인터페이스

            프로그래밍 문제

 


5. 다음 표와 같은 멤버를 가진 Controller 추상 클래스가 있다. TV와 Radio 클래스는 Controller의 구현 클래스이다. Controller, TV, Radio 클래스를 작성하시오. 그리고 ControllerTest 프로그램으로 테스트하시오.

 

필드 boolean power
메서드 void show()
추상 메서드 String getName()

 

1
2
3
4
5
6
7
8
9
public class ControllerTest {
    public static void main(String[] args) {
        Controller[] c = { new TV(false), new Radio(true) };
 
        for (Controller controller : c) {
            controller.show();
        }
    }
}

 

TV가 꺼졌습니다.
라디오가 꺼졌습니다.

 


 

        [ Controller.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public abstract class Controller {
    
    boolean power;
    
    public Controller (boolean power) {
        this.power = power;
    }
    
    public void show() {
        
        if (power) {
            System.out.println(getName() + "가 켜졌습니다.");
        } else if (!power) {
            System.out.println(getName() + "가 꺼졌습니다.");
        }
    }
    
    public abstract String getName();
 
}

 

 

        [ TV.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
public class TV extends Controller {
 
    public TV(boolean power) {
        super(power);
    }
    
    @Override
    public String getName() {
        return "TV";
    }
 
}
 

 

 

        [ Radio.java ]

1
2
3
4
5
6
7
8
9
10
11
12
public class Radio extends Controller {
    
    public Radio(boolean power) {
        super(power);
    }
    
    @Override
    public String getName() {
        return "라디오";
    }
 
}

 

 

        [ ControllerTest.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
public class ControllerTest {
 
    public static void main(String[] args) {
        
        Controller[] c = { new TV(false), new Radio(true) };
        
        for (Controller controller : c) {
            controller.show();
        }
 
    }
 
}

 

 

반응형