-
접근 제어자Java/Java 문법 종합반 강의 정리 2023. 12. 31. 14:42
접근 제어자 : public, protected, default, private
그 외 제어자 : static, final, abstract
접근 제어자 : 외부에서 접근하지 못하도록 제한한다
클래스, 멤버변수, 메서드, 생성자에 사용되고, 지정되어 있지 않다면 default 입니다.
- public : 접근 제한이 전혀 없다.
- protected : 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능합니다.
- default : 같은 패키지 내에서만 접근이 가능합니다.
- private : 같은 클래스 내에서만 접근이 가능합니다.
사용가능한 접근 제어자
- 클래스 : public, default
- 메서드 & 멤버변수 : public, protected, default, private
- 지역변수 : 없음
접근 제어자를 이용한 캡슐화 (은닉성)
- 접근 제어자는 클래스 내부에 선언된 데이터를 보호하기 위해서 사용한다.
- 유효한 값을 유지하도록, 함부로 변경하지 못하도록 접근을 제한하는 것이 필요하다.
생성자의 접근 제어자
- 생성자에 접근 제어자를 사용함으로 인스턴스의 생성을 제한할 수 있다.
- 일반적으로 생성자의 접근 제어자는 클래스의 접근 제어자와 일치합니다.
객체의 무결성 즉, 변경이 없는 상태를 유지하기 위해 접근 제어자를 사용합니다.
- 이때 외부에서 필드에 직접 접근하는 것을 막기 위해 필드에 private, default 등의 접근 제어자를 사용할 수 있다.
- 그렇다면 우리는 어떻게 객체의 private 필드를 읽어오거나 저장할 수 있을까?
- 우리는 Getter, Setter를 사용하여 이를 해결할 수 있다.
(직접적인 값의 조회, 수정을 방지하기 위해 사용한다.)
Getter : 외부에서 객체의 private 한 필드를 읽을 필요가 있을 때 Getter 메서드를 사용한다.
Setter : 외부에서 객체의 private 한 필드를 저장/수정할 필요가 있을 때 Setter 메서드를 사용한다.
Getter, Setter 에 대한 내용은 자바 프로그래밍에 있어서 핵심적인 내용이니, 다음에 더 자세히 정리하자.
제어자 사용시 주의 사항
- 메서드에 static과 abstract를 함께 사용할 수 없다.
- 클래스에 abstract 와 final을 동시에 사용할 수 없다.
- abstract 메서드의 접근 제어자가 private일 수 없다.
- 메서드의 private 와 final을 같이 사용할 필요는 없다.'Java > Java 문법 종합반 강의 정리' 카테고리의 다른 글
에러와 예외 (0) 2024.01.02 default 메서드, static 메서드, 형변환 (2) 2024.01.01 매개변수의 종류(기본형, 참조형)와 차이 (0) 2023.12.30 기본형 변수와 참조형 변수 (0) 2023.12.29 JVM (2) 2023.12.29