Search

객체지향 프로그래밍(4)

태그
추상화
인터페이스
이너클래스
패턴
자바
멀티캠퍼스
파일
추상 클래스
추상 메서드가 0 개 이상 존재하는 클래스이다.
추상 메서드가 존재 한다면 반드시 추상 클래스로 만들어야 한다.
추상 클래스는 미완성의 클래스 이기 때문에, 인스턴스화가 불가능 하다.
추상 클래스를 상속받은 자식 클래스는 추상 메서드를 Override 함으로써
추상클래스를 완성 시킨다.
Interface
인터페이스는 서로 다른 시스템이 결합되기 위해 지켜야 하는 약속이다.
인터페이스는 인터페이스를 구현하는 모든 클래스들이 지켜야하는 공통의 규약
상속은 단일 상속만 가능하지만, 인터페이스 구현은 다중 구현이 가능하다.
인터페이스 → 클래스 : 구현
인터페이스 → 인터페이스 : 상속
인터페이스의 구현은 추상클래스의 상속과 마찬가지로 추상메서드에 대한 구현과,
타입을 물려준다.
인터페이스 끼리의 상속은 다중 상속이 가능하다.
인터페이스의 필드변수는 묵시적으로 public static final 이다.
인터페이스의 인스턴스 메서드는 묵시적으로 public abstract 메서드 이다.
Inner class
inner class 를 사용해서 속성을 초기화 한다.
가급적 외부 클래스 안에서만 inner instance 클래스를 사용하는 편이 좋다.
바깥에서 사용할 경우, 내부 클래스가 외부클래스를 참조하기 때문에 메모리 상에서 둘 중 하나라도 내려가지 않으면 두 객체 모두 내려가지 않게 된다.
Pattern
점층적 생성자 패턴
매개변수가 있는 생성자를 사용해 객체를 초기화하는 객체 생성 패턴
Book book = new Book(”김필”, 10000, “김훈”)
불변객체 생성가능 : 객체를 초기화한 이후, 속성값 변경이 불가능한 객체를 생성할 수 있다.
setter 를 안만들면 수정이 불가능하다.
단점 : 가독성이 좋지 않다. 어떤 속성에 어떤 값이 초기화 되는지 코득를 보고 한 눈에 파악하기 힘들다.
자바빈 패턴
기본 생성자로 객체를 생성하고 setter 를 통해 값을 초기ㅗ하 한다.
Book book = new Book() book.setTitle(”김필”);
Java
복사
가독성이 좋다. 어떤 속성에 어떤 값이 초기화 되는 지 인스턴스화 하는 코드 상에서 알 수 있다.
단점 : 불변객체 생성이 불가능하고 초기화된 속성은 setter 를 통해 언제든 변경이 가능하다.
Builder 패턴
불변객체 생성이 가능하다.
가독성이 좋다.