목표: 접근 제어자와 캡슐화의 개념에 대해 확실히 이해하고 암기하자..!
오늘 배운 내용
제어자.
제어자란?:
제어자는 클래스나 멤버변수와 메서드에서 주로 이용한다. 하나의 대상에서 접근제어자가 아닌 그 외의 제어자들를 조합하여 사용 가능하지만, 접근제어자는 한번에 하나만 선택해서 사용할 수 있다.
접근 제어자
private: 같은 클래스 내에서만 접근이 가능하다.

default: 같은 패키지 내에서만 접근이 가능하다.

protected: 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능하다.

public: 접근 제한이 없다.

그 외 제어자
static : 클래스 변수나 클래스 메서드, 클래스 변수 초기화 블록에 사용된다.
- 클래스 변수 :
- 모든 인스턴스에 공통적으로 사용되는 변수에 static 키워드를 붙이면 클래스 변수가 된다.
- 클래스 변수는 인스턴스를 생성하지 않고도 사용 가능하다.
- 클래스가 메모리에 로드될 때 생성된다.
- 클래스 메서드:
- 메서드에 static 키워드를 붙이면 클래스 메서드가 된다.
- 인스턴스를 생성하지 않고도 호출이 가능하다.
- static 메서드 내에서는 인스턴스 멤버들을 직접 사용할 수 없다.
final : 마지막의, 변경될 수 없는 의미를 가지고 있는 제어자이다. 변수에 사용되면 값을 변경할 수 없는 상수가 되고, 메서드에 사용되면 오버라이딩을 할 수 없게되고, 클래스에 사용되면 자손 클래스를 정의하지 못한다.
abstract : 미완성의 라는 의미를 가지고 있는 제어자로, 메서드의 선언부만 작성하고 실제 수행내용은 구현하지 않은 추상 메서드를 선언하는데 사용된다. 클래스에 사용되어 클래스 내에 추상메서드가 존재한다는 것을 쉽게 알 수 있게 한다.
캡슐화.
접근제어자를 사용하는 이유는 클래스 내부에 선언된 데이터를 보호하기 위해서이다. 데이터를 외부에서 함부로 변경하지 못하게 제한하는것을 캡슐화, 정보은닉 이라고 부른다. 캡슐화는 외부에서 접근할 필요가 없는 멤버들을 private으로 지정해서 복잡성을 줄일 수도 있다. private 에서 public으로 변환하는 것은 그 클래스에서의 오류여부만 살펴보면 되지만, public에서 private으로 바꾸는 것은 훨씬 넓은 범위의 에러 발생여부를 살펴봐야 하는 문제점이 있다.
http://www.tcpschool.com/java/java_modifier_accessModifier
"자바의 정석" - 남궁성-
더 배울 내용
접근제어자를 안보고 능숙하게 사용할 수 있을때까지 연습해야겠다.
느낀점
접근 제어자의 범위에 대해서 늘 헷갈렸는데 그림을 통해서 보니까 이해하기 쉬웠다.
4가지의 접근제어자와 다른 제어자들에 대해 개념은 확실이 이해가 되었다.
잊어버리지 않게 종종 들어와 한번씩 톺아봐야겠다.
'Practice > Java' 카테고리의 다른 글
| 스프링) @Transactional 정리 (0) | 2022.12.19 |
|---|---|
| 스프링 코드 분석) 메모장 만들기 프로그램 (2) | 2022.12.08 |
| JDK,JRE,JVM 자바 프로그램의 구동 원리. (0) | 2022.12.01 |
| 기초 자바 개념정리: ArrayList (0) | 2022.11.24 |
| 기초 자바 개념정리: 클래스 (1) | 2022.11.09 |