접근 제어자(Access Modifier)
private : 모든 외부 호출을 막음
default(package-private) : 같은 패키지 안에서는 호출 허용
protected : 같은 패키지 안에서는 호출 허용, 패키지가 달라도 상속 관계의 호출 허용
public : 모든 외부 호출 허용
접근 제어자를 명시하지 않으면 같은 패키지 안에서만 호출을 허용하는 default 접근 제어자가 적용됨
접근 제어자는 필드와 메서드, 생성자에 사용됨 + 클래스 레벨에도 일부 접근 제어자 사용 가능
클래스 레벨의 접근 제어자 규칙
public, default만 사용 가능
public 클래스는 반드시 파일명과 이름이 같아야 함
>>하나의 자바 파일에 public 클래스는 하나만 등장 가능
>> 하나의 자바 파일에 default 접근 제어자를 사용하는 클래스는 무한정 가능
캡슐화(Encapsulation)
데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것
>> 데이터의 직접적인 변경을 방지하거나 제한
속성과 기능을 하나로 묶고, 외부에 꼭 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것
데이터를 숨겨라
가장 필수로 숨겨야 하는 것은 속성(데이터)
객체 내부의 데이터를 외부에서 함부로 접근하게 두면
>>클래스 안에서 데이터를 다루는 모든 로직을 무시하고 데이터를 변경할 수 있음 (캡슐화 깨짐 현상)
객체의 데이터는 객체가 제공하는 기능인 메서드를 통해서 접근해야 한다!
기능을 숨겨라
객체의 기능 중에서 외부에서 사용하지 않고 내부에서만 사용하는 기능들이 있음
사용자 입장에서 꼭 필요한 기능만 외부에 노출하자!
'Java' 카테고리의 다른 글
Java / final (0) | 2025.02.22 |
---|---|
Java / 자바 메모리 구조와 static (0) | 2025.02.22 |
Java / 패키지 (0) | 2025.02.21 |
Java / 생성자 (0) | 2025.02.21 |
Java / 기본형과 참조형 (0) | 2025.02.21 |