class 선언
<modifiers> class <class_name>
{
[<attribute_declarations>]
[<constructor_declarations>]
[<constructor>]
}
Interface
내가 다른 객체와 정보를 주고받을때, 정해진 규격이나 규약을 정의해서 서로 정형화되게 교환하기 위해서 사용한다.
이렇게 형식으로 알려주는 게 되게 여러가지 의미가 있다.
전혀관계가 없는 클래스 들을 묶을 수 있음
뒤에가서 인터페이스 자세한 걸 배움.
언제 쓸까 ?
- data를 읽어올 때, 어디서 읽어 올거냐 ? 잘... 모르겠다. 근데 File에서 읽어올 수도 있고, Network에서 읽어올 수도 있다.
읽어오는 데이터를 가지고 파싱 하는 걸 만들건데 ...
이럴 때 인터페이스를 만든다.
interface InpuStream;{
read();
available()
close()
}
FileInputStream implements InputStream(){
read()
available()
close()
}
객체를 기술하는건 아는데 .. 관계를 기술하는건 설명하지 않음
그 관계를 기술 하는 방법에 interface를 많이 쓴다.
그래서 인터페이스............................................................................................................................는 oop 이다.
또다른 인터페이스 예 :)
DI라는 기술이 있다.
dependency Injection라고 하는데
먼저 알아야 될건
Top down 개발방식 : 위에서 부터 작은거 만드는거
Bottom up 개발방식 : 작은거부터 만들고 큰거로 만들고, 더 큰거 만드는거
Top down 개발방식은 사용자 중심개발, 진행율 보기가 어려움 작은 부분들을 개발하지 못하면 전체 프로젝트 망함
Bottom up 은 기술 중심 개발, 100%구현, 그치만 진행율 보기가 어려움
그래서
Top down 방식으로 많이 하려고함.
근데 전체 프로젝트가 망하는 걸방지하기 위해서 임의에 인터페이스를 만들어 사용함.
나중에 그 인터페이스를 설정해주는 방법을 Dependency Injection 이라고 한다
여러 사람이 구현할 때,인터페이스로 구현하여 만드는 것이 효율적으로 구현할 수있다는것.
인터페이스를 쓰는 또 다른 예가 있는데
옵져버 패턴을 보면 안다.
리스너 패턴이라고도 한다.
다른 예가 있는데...
ListView
'AdvancedJava' 카테고리의 다른 글
[2일차]is-a,has-a 호출 (0) | 2016.07.06 |
---|---|
[2일차] Virtual Method (0) | 2016.07.06 |
final keyword (0) | 2016.07.05 |
static Keyword (0) | 2016.07.05 |
어노테이션, 생성자, 제어자 (0) | 2016.07.05 |