나는매일가운데

Java 기초 (6) Access Modifier, Modifier-230109 본문

for JAVA/JAVA 기초

Java 기초 (6) Access Modifier, Modifier-230109

전로찡 2023. 1. 24. 15:08
반응형

(1) 용어정리

- package : java에서의 폴더, 디렉토리를 말한다. package 의 CSV는 .으로 구분한다.

- import : 

- API (Application Programming Interface) : java에서는 자주 사용하는 기능들을 package에 .class로 정리하여 제공한다. 이를 import라는 키워드를 통해 다른 class에서 사용이 가능하다. 또한 소스 파일을 제공해서 소스를 확인할 수 있다. 이러한 class들을 사용하려면 path가 필요하다. 따라서 자바 path의 기본값은  ./; %Java_Home%/jre/lib/rt.jar 를 통해 class 파일의 위치를 제공한다.

 

- is a 관계 : 주로 상속의 관계를 말하며, 상위 class로 갈수록 일반적인 개념(Generalization)이고, 하위 class로 내려갈수록 구체적(specialization)이다.

- has  a 관계 : 하나의 class가 코드의 재사용상을 위해 다른 class의 대한 참조를 가지고 있는 관계를 말한다.

 ex) 동물 과 사자는 is a association / 사자와 꼬리는 has - a 관계

     여기서 꼬리는 다른 클래스인 개에서도 사용이 가능하다.

 

1. Access Modifier

- Access Modifier란 외부 class 혹은 package에서 접근할 때, 접근도를 나타내기 위한 도구이다

- public, protected, default, private가 있다.

- 접근도 : public > protected > default > private

 

(1) public

 - Class, Method, field에 사용 가능하며, 외부 class, 상속관계 class, 동일 혹은 외부 package에서 접근이 가능하며 언제든 사용 가능하다.

 

(2) protected (public+private) : Method, Field에 사용 가능하며, 상속관계 class, 동일 package에서만 접근 가능하다. 자주 쓰이는 접근자는 아니다.

 

(3) default : class, method, field에 사용 가능, 상속관계는 접근 불가능 하지만, 같은 package는 접근 가능하다.

 

(4) private : 주로 Field에만 사용하며, 본인 class가 아니면 접근이 불가능 하다.

 

2. Modifier

 - java에서 Object Modeling시 특별한 기능을 부여한다.

 - Modifier는 객체는 서로 다른 상태를 갖는다는 java의 대명제를 실현시켜주는 도구이다.

 - static, final, abstract가 있다.

 

(1) static

 - field, method에 사용 가능하며, 동일한 정보를 모든 객체에게 공유 가능하게 하는 방법이다.

 - 이를 통해 객체는 서로 다른 상태를 갖는다 라는 대명제를 실현할 수 있다.

 - class명을 통해 접근 가능

 - ex) 남고의 학생들은 모두 남자이다. => 성별 : 남 이라는 상태를 static을 통해 전체 공유를 할 수 있고, 각각의 객체(instance)는 성별을 제외하면 다른 상태인 것을 알 수 있다.

 

(2) final

 - class, field, method에 사용이 가능하다.

 - final class : Hirachy 구조 중 최하위 class이므로 더 이상 확장 시키지 말라는 의미를 가지고 있다.

 - final method  : final method는 중요하기 떄문에 Overriding을 하지 말라는 의미를 가진다.

 

(3) abstract

 - class와 method에만 사용가능하다.

 - final과 반대되는 의미로, abstract class에 존재하는 abstract method는 반드시 Overriding해서 사용하라는 의미이다.

 - abstract method는 method signature만 가지고 있으며, 실행시키는 구체적인 코딩은 하지 않고 빈 블록 상태로 존재한다.

 

(4) pure abstract class

 - interface class를 말하며, 단순히 기능 구현을 위한 class이다.

 - 다중 상속을 금지하는 java에서, O/R를 통해 다른 class의 method를 사용 가능하다.

 - has - a 관계를 형성하게 한다.

 

 

 

반응형