내부 클래스(inner class): 클래스 안에 다른 클래스를 정의
클래스 : 관련있는 변수와 함수들을 묶어놓은것.
인터페이스 : 관련있는 기능을 가진 추상메소드 들을 묶어놓은것.(하나의 타입이나 객체화가 안됨.)
인터페이스를 상속 받는 방법은 Implements 사용.(상속 받았을때 인터페이스에 있는 모든 메소드를 구현해야 하는 의무를 가짐.)
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆↓
1번 : 부모클래스는 추상메소드로 기능의 틀만 정의 (멤버 변수와 추상메소드 상속)
자식클래스에서 각자 자기에 맞는 기능을 구현
2번 : 각 기능에 대해 인터페이스 작성 후 개별 클래스로 기능들을 구현 (기능 분리 (각자 분리된 기능 중 하나를 선택해서 객체화))
부모클래스에서는 인터페이스(슬롯)을 멤버변수 가짐
자식 클래스에서 원하는 기능을 멤버변수(인터페이스 슬롯)에 객체 할당
자기 자신에 맞는 기능을 구현한 함수에서 인터페이스의 메소드 호출.
3번 : 각 기능에 대해 인터페이스로 작성후 개별클래스로 기능 구현 (분리된 기능을 외부에서 객체화 해서 주입)
Context 클래스에서 인터페이스(슬롯)을 멤버변수 로 가지고 setter제공
Context를 사용하는 주체(메인함수)에서 사용할 기능클래스의 객체를 만들어서 Context에 조립/사용.
추상클래스, 인터페이스는 객체가 될 수 없음
>> 왜냐면 미완성인 추상메소드를 가지고 있어서.
무명클래스 문법을 사용 하시면 1회성으로 추상메소드를 구현하시면서 객체로 만들 수 있음.
new ClssOrinterface() { 클래스의 몸체 } << new 옆에 부모 클래스 이름이나 인터페이스 이름
자주 쓰일것 같은 인터페이스의 구현함수는 클래스로 implements 하고
자주 쓰일것 같지 않고 간단한 구현은 무명클래스로 가볍게 사용.
무명클래스 ex)
여러개의 인터페이스를 구현할 수 있다.
ex) public class SmartTv implements RemoteControl, Searchable;
여기서 리모트컨트롤 과 서치 기능은 인터 페이스.
이렇게 됬을때 스마트 티비는 리모트 와 서치 인터페이스의 추상 메소드를 완성해야할 의무 가 생김.
인터페이스 간의 상속이 가능하다.
ex) public interface InterfaceA{
public void methodA(); }
public interface InterfaceB extends InterfaceA{ // 인터페이스B 는 인터페이스 A 를 상속 받았다.
public void methodB(); }
public class A implements InterfaceB { //A 라는 클래스에 인터페이스B 를 구현하면
public void methodA();{ // 인터페이스 A ,B 의 추상메소드를 완성 하라는 의무를 가지게됨.
}
public void methodB();{
}
'[JAVA]' 카테고리의 다른 글
[JAVA]9월 24일 예외처리, 예외의 종류, 정규 표현식, Pattern클래스 (0) | 2015.09.24 |
---|---|
[JAVA]9월23일 패키지, 시스템 클래스, StringBuffer 와 StringBuilder 의 차이점, Wrapper 클래스, Date 클래스, StringTokenizer 클래스 (0) | 2015.09.23 |
[JAVA]9월 21일 다형성, 동적 바인딩, 추상클래스, 다중상속 (0) | 2015.09.21 |
[JAVA]9월 18일 상속, 부모클래스, 자식클래스, Singleton패턴 (0) | 2015.09.18 |
[JAVA]9월17일 정적변수, 정적메소드, 접근 제어의 종류 (0) | 2015.09.17 |