일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 그리디 알고리즘
- MySQL
- Java
- 자바스크립트 기초
- Greedy 알고리즘
- 브론즈
- 백준
- 프로그래머스
- date_format
- join
- java.io
- debugging
- DevOps
- reference data type
- 알고리즘
- 디버깅
- 전자레인지 문제
- 탐욕 알고리즘
- 클라우드
- 코테
- 서브넷
- sqlplus
- greedy
- 거스름돈
- docker image
- SQL
- Access Modifier
- docker
- docker 개념
- Docker 핵심
- Today
- Total
나는매일가운데
Java 기초 (6) Access Modifier, Modifier-230109 본문
(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 관계를 형성하게 한다.
-
'for JAVA > JAVA 기초' 카테고리의 다른 글
JAVA API - java.io (0) | 2023.01.24 |
---|---|
JAVA (7) - java의 형 변환과 API (0) | 2023.01.24 |
Java 기초 (6). Polymorphism (다형성), Bean class 구조 23.01.06 (1) | 2023.01.15 |
JAVA 기초 (4) : OOP (객체 지향 프로그래밍)의 개념 (0) | 2023.01.05 |
JAVA 기초 (3) : 기초 문법 (0) | 2023.01.04 |