Christmas Pikachu 22/05/30 JAVA (인터페이스, 스태틱)
Java

22/05/30 JAVA (인터페이스, 스태틱)

ZI_CO 2022. 6. 11.

 <인터페이스>

 

극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것이 바로 인터페이스의 역할이자 개념이다. 조금 더 유식하게 말하면, 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다

 

Hdmi 인터페이스

인터페이스를 쓸때는 선언을 상위 클래스 형식으로 해줘야한다. 클래스를 인터페이스로 만들어준다.

먼저 hmdi라는 인터페이스 클레스를 만들어서 클래스와 클래스 사이를 연결해줄 메소드를 만들어준다.

이때 메소드는 일반 메소드와는 다르게 추상메소드를 써줘야한다.

차이점이라고 하면 몸체(중괄호)가 없다.

hdmi상속 받은 Monitor

hdmi인터페이스 클래스에서 상속을받으려면 인터페이스 클래스가아닌 일반 클래스로 만들어  implement를 써서 hdmi에서 상속을 받아줘야, 인터페이스 메소드를 쓸수가 있다.

메소드를 만들때는 꼭 Override를 시켜줘야한다. 이때 Override를 시켜준 메소드는 추상메소드를 쓰지않는다. Override를 해주면 무조건 일반메소드 형식으로 써줘야한다.

hdmi상속 받은 BeamProjector
hdim 상속 받은 SmartPhone

SamrtPhone 메소드에 매개변수를 hdmi로 받아준다. 그 이후에 SmartPhone클래스 내에 있는 powerOn메소드와 powerOff메소드를 출력할때 hdmi를 연결해서 같이 출력할 수있도록 메소드 안에 넣어준다.

 

 

출력

Monitor클래스 생성자와 Beamprojector클래서 생성자를 만들어준다. 그리고 SmartPhone클래스 생성자를 만들어주면서 

SmartPhone메소드를 만들면서 매개변수로 hdmi자리에 monitor를 넣어주면 smartPhone.powerOn, smartPhone.powerOff를 호출해서 출력이 나오면 스마트폰이 꺼지고 켜지는 문구가 나오면서 hdmi로 연결된 connect, disconnect 메소드가 같이 호출이 된다.

 

 

 

 

 

※느낀점※

인터페이스는 서로를 연결해주는 것이라고 쉽게 생각하면된다. 어떤것을 연결해서 그 연결된 메소드를 쉽게 출력을 할수가있다. 기본적인 개념만 맛보기를 한거지만 여전히 헷갈린다. 언제쯤 한눈에 딱 보고 코드해석이 될까..... 

 

 

 

'Java' 카테고리의 다른 글

@RequiredArgsConstructor  (0) 2024.05.27
22/05/30 JAVA (추상 클래스, 메소드)  (0) 2022.06.03
22/05/27 JAVA (class - 상속, 오버라이딩, 다형성)  (0) 2022.05.29
22/05/26 JAVA (12DAY)  (0) 2022.05.29
22/05/25JAVA (DAY11)  (0) 2022.05.28

댓글