기본 콘텐츠로 건너뛰기

0.11 Object Oriented Programming (3)

Object Oriented Programming (3)


0. 공유
1. 상속
2. super, this method
3. overriding
4. package
5. 접근제한자




0. 공유

공유를 통한 상속, 계층화, 묵시적 형변환, 객체 구성 


- 공유의 개념을 통한 재 사용화 / 계층화 / 상속


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에서는 사용할 수 없음