Java 객체지향 개념 정리(OOP) 2편
✍객체 지향개념 및 규칙 정리 2편
본 내용은 자바의 정석을 바탕으로 작성
❗ 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음
2022-01-28
포함관계
- 클래스의 멤버로 참조변수를 선언하는 것
- 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만듬 (Ex. 자동차 클래스안에 Engine 클래스나 door 클래스를 만드는 행위)
- ~은 ~을 가지고 있다(has-a) VS 상속 : ~은 ~이다 (is-a)
단일상속
- 자바는 단일상속만을 허용한다
- 비중이 높은 클래스를 상속관계로 나머지는 포함관계로 한다.
toString 오버라이딩
오버라이딩의 조건
- 선언부가 조상 클래스의 메서드와 일치해야 한다.
- 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
- 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
참조변수 super
- 객체 자신을 가리키는 참조변수 인스턴스 메서드(생성자)내에서만 존재
- 조상의 멤버를 자신의 멤버와 구별할 때 사용
super() 조상의 생성자
- 조상의 생성자를 호출할 때 사용
- 조상의 멤버는 조상의 생성자를 호출해서 초기화
- 생성자의 첫 줄에 반드시 생성자를 호출해야함 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super(); 를 삽입 → 지키지 않으면 오류가 발생
- **즉 오류 발생을 피하려면 자식에서 super를 통해서 생성자 호출 혹은 부모 클래스에서 기본 생성자를 생성해야함 **
👈this() 와 비슷하다
this()는 같은 클래스 내에서 다른 생성자를 호출 super()는 자식클래스에서 부모클래스의 생성자를 호출
Final
- 변경될 수 없는 클래스에 붙임 → final로 지정된 클래스는 다른 클래스의 조상이 될 수 없음
- 변경될수 없는 메서드 → final로 지정된 메서드는 오버라이딩을 통해 재정의 X
- 변수 앞에 final이 붙으면 값을 변경할 수 없는 상수(변수이름은 대문자로 표기)
다형성
- 여러 가지 형태를 가질 수 있는 능력
- 조상 타입 참조 변수로 자손 타입 객체를 다루는 것
- 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다
ex) Tv : 조상 SmartTv : 자손
Tv t = new SmartTv(); O
SmartTv s = new Tv(); x
다형성의 장점
- 다형적 매개변수
- 하나의 배열로 여러종류 객체 다루기
참조변수의 형변환
- 사용할 수 있는 멤버의 갯수를 조절
- 조상, 자손 관계의 참조변수는 서로 형변환 가능 , 형제 끼리는 형변환 X
오류 예상 원인
instanceof 연산자
- 참조변수의 형변환 가능여부 확인에 사용 → 가능하면 true 반환
Leave a comment