이 포스팅에는 아래의 내용이 포함되어있습니다.
1. 제어자란?
2. 제어자 종류
3. 접근 제어자
4. 접근 제어자를 사용하는 이유
5. 제어자의 조합
1.제어자란? (modifier)
- 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 나타낸다.
- 접근 제어자와 그 외 제어자로 나뉜다.
- 하나의 대상에 여러 제어자를 조합해서 사용할 수 있지만 접근 제어자는 하나만 사용가능하다.
1.navtive : 자바가 아닌 다른 언어로 작성된 메서드들 호출할때 사용하는 것
2.transient : 직렬화에 많이 쓰인다.
직렬화 : 객체를 데이터 스트림으로 만드는 것인데 다시 말해, 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것을 말함.
3. Synchronized, volatile : Thread 동기화에 쓰임
4. Strictfp : float나 double와 같은 부동소수점에 쓰임(소수점의 정확성을 보장)
2. static
클래스의 , 공통적인
- 멤버 변수: 모든 클래스에서 공통적으로 사용할 수 있는 클래스 변수
- 멤버 메서드: 인스턴스를 생성하지 않고도 호출할 수 있는 static메서드
3. final
마지막의, 변경될 수 없는
- 클래스: 확장될 수 없는 클래스(상속 x)
- 메서드: 오버라이딩으로 재정의 못함
- 멤버 변수: 값을 변경할 수 없는 상수
(선언시, 혹은 생성자에서 단한번 초기화 가능)
4. abstract
추상의, 미완성인
- 클래스: 클래스내에 추상메서드가 선언되어있음
- 메서드: 선언부만 있고 구현부가 없는 메서드
5. 접근 제어자
- private : 같은 클래스 내에서만 접근이 가능하다.
- default : 같은 패키지 내에서만 접근이 가능하다.
- protected: 같은 패키지 내에서,그리고 다른 패키지의 자손 클래스에서 접근 가능
- public : 어디서든 접근 가능하다.
5-1 . 접근 제어자를 사용하는 이유
- 외부로부터 데이터를 보호하기 위해서
- 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서
(캡슐화)
6. 제어자의 조합
- 메서드에 static과 abstract를 사용할 수 없다.
- 클래스에 abstract와 final을 동시에 사용할 수 없다.
( abstract는 상속을 통해 완성이 되어야하는데 final은 상속이 안되기 때문)
- abstract메서드의 접근 제어자가 private일 수 없다.
- 메서드에 private와 final을 같이 사용할 필요는 없다.
(둘다 오버라이딩 못한다는 같은 뜻이기 때문이다.)
'JAVA > java 이론' 카테고리의 다른 글
[자바JAVA] 추상클래스, 추상 메서드 abstract class (0) | 2020.10.28 |
---|---|
[자바JAVA]다형성/ 업캐스팅, 다운캐스팅/instanceof연산자/ 형변환 (0) | 2020.10.22 |
[자바JAVA] 싱글톤 디자인 패턴 (0) | 2020.10.20 |
[자바JAVA] 메서드 오버라이딩 (0) | 2020.10.19 |
[자바JAVA]상속/포함관계 (0) | 2020.10.18 |