Nrdws7zu0oncf6nmjw5p
송팡가
  • 2016.5.15 21:10
  • 조회수 117
  • 답변수 1
Nrdws7zu0oncf6nmjw5p
송팡가
  • 2016.5.15 21:10
  • 조회수 117
  • 답변수 1

아직도 헷갈립니다 ㅠㅠ

인터페이스 사용하기 강좌 중에서요

public class LedTVExam{
    public static void main(String args[]){
        TV tv = new LedTV();
        tv.on();
        tv.volume(50);
        tv.channel(6);
        tv.off();
    }
}

3번라인의 TV tv = new LedTV(); 인스턴스를 만드는 부분이 정말 이해가 안되요..

LedTV만이 가지고 있는 메소드를 쓸 수 없는데 왜 TV형식으로 담는건가요?

LedTV led = new LedTV(); 와 같이 만들지 않는 이유가 있나요?

정말 이부분에서 몇일째 막혀있어서 이해가 안되서 계속 겉도네요

인스턴스와 메소드 사용이 여러가지 변수를 사용하면서 클래스가 넘어가도

이리저리 왔다 갔다 하면 도저히 이해가안되요.

어디서 부터 문제인걸까요. 도와주세요 강사님!

  • #자바 입문
  • #인터페이스 사용하기

1 답변

  • 953061688145744
    Park Hansu
    • 2016.6.16 21:23

    예제처럼 TV는 여러가지 필수기능들이 있죠.

    그런데 모델마다 조금씩 다른 기능들과 그 설정이 다를 것입니다.

    예를 들면 3가지 모델이 있는데,
    1번 모델은 볼률을 한 번에 1씩 올리고 내리게 설정되어있고,
    2번 모델은 볼륨을 한 번에 10 씩, 3번 모델은 30씩 조절하게 설정되어 있다고 합시다.
    하지만 이들은 여전히 똑같이 '볼륨을 조절한다는 공통된 (필수)기능'입니다. 설정이 조금 다를 뿐이죠.
    인터페이스를 사용하면 하나의 클래스로 저 기능들을 바로 구현할 수 있습니다. (호출하는 클래스만 변경해서요)
    하지만 인터페이스를 사용하지만 않으면 중복되는 기능들을 각 모델(클래스)마다 구현해야하죠.

    그리고 이는 볼륨을 조절하는 기능 뿐만 아니라, 채널을 조절하고, TV를 켜고 끄는 등 다른 기능들에도 적용되겠죠.
    그래서 인터페이스를 사용하는 것 같습니다.

    부족한 설명이지만, 제가 강의를 보면서 이해한 바는 이렇습니다.
    도움이 되셨으면 좋겠네요.

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.