JAVA

접근제한자

euicheol0910 2025. 1. 8. 17:48

 

*필드와 메소드에 사용할 수 있는 접근제한자 4가지

 

public : 어디서든(동일패키지, 외부패키지 모두) 접근가능

protected: 같은 패키지 + 다른 패키지인 경우 상속관계에 있을 때만 사용가능

default : 같은 패키지에서만 접근가능

private: 오직 해당 클래스에서만 접근가능

 

클래스 정의 대상: public, default

인스턴스 변수와 메소드 대상: public, protected, default, private

 

 

필드에서는 아래와 같이 변수선언을 private형태로 해준다.

private String title; 
private String genre;
private String author; 
private int maxpage;

 

private으로 변수선언을 하는 이유는 다음과 같다.

 

1.데이터 보호

클래스 내부의 변수를 외부에서 직접 수정하거나 접근할 수 없게 하여, 데이터를 보호할 수 있다. 외부에서 직접 접근을 제한함으로써 객체의 상태를 예측할 수 있는 방법을 제공하고, 잘못된 값이 할당되는 것을 방지할 수 있다. 데이터를 간접적으로 수정하거나 조회할 수 있도록 하는 메서드를 gettersetter라고 하며, 이들을 통해 데이터의 변경을 제어할 수 있다. 이를 통해 클래스 내부 로직을 안전하게 유지할 수 있다.

 

2.응집력 강화

클래스 내부 구현을 외부에서 알 수 없게 하여 클래스의 응집력을 강화할 수 있다. 클래스 외부는 그저 정의된 메서드만 알고, 내부 구현에 대해서는 신경 쓸 필요가 없다. 이는 코드의 유지보수성을 높이고, 변경 사항이 외부에 미치는 영향을 최소화한다.

 

3.디버깅 및 확장 용이

클래스 내부의 상태 변경을 제어하기 때문에, 디버깅할 때 어떤 값이 변경되었는지 추적하기 쉽고, 클래스의 변경이 다른 부분에 미치는 영향을 줄일 수 있다. 클래스의 내부 구현을 바꾸어도 외부에서 사용하는 코드를 변경할 필요가 없어 확장이 용이하다.

 

 

Static변수를 붙여서 선언하는 클래스 변수

 

*접근방식

 

클래스 내부에서 접근시

- static 변수가 선언된 클래스 내에서는 이름만으로 직접 접근 가능

 

클래스 외부에서 접근시

- private으로 선언되지 않으면 클래스 외부에서도 접근 가능

- 접근 수준 지시자가 허용하는 범위에서 접근 가능

 

*static 변수의 초기화

 

static변수는 클래스가 메모리에 로드될 때 한 번만 초기화된다. 이 시점에서 static 변수는 모든 인스턴스에서 공유되는 변수로 메모리에 할당되어 공통으로 사용되는 변수가 된다.

'JAVA' 카테고리의 다른 글

자바 오버로딩 , 오버라이딩  (2) 2025.04.18
자바의 특성(장점)  (2) 2025.04.17
JVM이란?  (4) 2025.04.16
변수(JAVA)  (0) 2025.01.02
Eclipse,JDK 다운로드 및 환경 설정  (0) 2024.12.30