Object Oriented Programming (3)
0. 공유
1. 상속
2. super, this method
3. overriding
4. package
5. 접근제한자
1. 상속
extends 키워드를 이용한 상속
다형성, 형변환 등 객체 지향의 특징이 잘 드러나있는 개념
2. super, this method: 공유 기능을 지원하는 수단
1) super()- super()(super method)는 상위 클래스의 기본 생성자를 호출
- super(매개값,...)의 경우는 매개값이 일치하는 상위 클래스의 생성자를 호출
- 매개값이 일치하는 경우가 없다면 compile오류 발생
2) this()
- 생성자에서 다른 생성자를 호출할 때 this()를 사용
- 생성자 오버로딩이 많아져 생성자 간에 중복 코드가 많아지는 것 해결
예) 생성자 오버로딩에 의한 중복 코드 발생 및 this() 사용
3. overriding
wikipedia overriding 문서에서 제시한 도식
overriding 개요
- 상위 또는 부모 클래스에서 이미 제공된 메서드를 하위 또는 자식 클래스에서 재정의하여 구현하는 것
- overriding이 필요한 이유는 유지, 관리의 용이함 및 다형성때문
- 공유의 개념에서 보면 자신이 가지고 있다면 공유할 필요성이 줄어듦
- 추상 클래스(Abstract class)에서 다시 언급
4. package, import
1) package- windows o/s에서는 폴더의 개념
- class가 늘어나 관리가 필요해서 도입된 개념
- java에서는 package라고 하고 .(dot)이 csv에 해당
예) import java.util.Scanner;
- 오픈소스인 경우 해당 사이트 도메인을 뒤집으면 package 명칭을 유추할 수 있음
2) import
- import package.class;
- 다른 패키지에 들어 있는 클래스를 사용하기 위한 기술
5. 접근제한자
접근 제한자 개요
1) public
- 접근에 제한이 없음 = 클래스 외부에서 사용이 가능
2) protected
- 같은 package라면 다른 클래스여도 접근 가능(상속 관계도 포함)
- 외부 package에서는 상속 관계가 있다면 접근 가능
- class에서는 사용할 수 없음
3) default
- 같은 package라면 다른 클래스여도 접근 가능
- 외부 package의 다른 클래스는 접근 불가
- 상속관계는 접근 안 됨
4) private
- 접근 제한 (캡슐화) = 해당 클래스 내부에서만 사용이 가능
- class에서는 사용할 수 없음