본문 바로가기
Back/Java

Day74_객체지향 복습_III 접근 제어자, Getter&Setter

by uxia 2023. 11. 4.

 

접근제어자는 클래스 구성요소의 공유 가능 범위를 설정하는 거라 이해하면 된다.

필요한 인스턴스는 public으로 공개하고,

불필요한 인스턴스는 private으로 숨겨 혼동을 방지하는 것이다.

 

public과 private을 주로 사용하지만,

그 외에도 protected와 default가 있다.

접근 가능 범위는 아래와 같다.

접근 가능 public protected default private
해당 클래스 안에서
동일 패키지 안에서  
동일 패키지 또는 자손 클래스 안에서    
다른 패키지 포함 어느 곳에서든      

 

코드를 못 보게 감추는 것은 아니고

볼 수는 있으나 작성자의 의도대로 사용하기 위해

접근에 대한 제한을 거는 것이다.

 

 

아래 예시를 보면,

앞에 접근제어자를 붙이지 않은 powerButton은 자동으로 default가 된다.

default인 powerButton과 public인 sdCardSlot은

Main 클래스에서 접근할 수 있지만,

private인 cpu는 접근하지 못한다.

 

 

 

좀 더 활용해보면,

아래 코드에서 필드는 private으로,

메소드는 public으로 설정했다.

 

여기서 초록 부분을 통해 private은

같은 클래스에서만 접근이 가능하다는 것을 알 수 있다.

 

따라서 static이 붙은 본사 정보와 private인 필드는 접근 불가하고

접근하려면 public인 메소드를 통해 접근해야한다.

 

 

 

 

다음으로 Getter, Setter에 대해 배우는데,

이건 private 메소드에 접근하기 위해 사용된다.

 

우선 private 필드를 만들어주고,

Cmd + N 으로 생성자와 Getter&Setter를 만들어준다.

 

 

Get메소드는 접근 가능하도록 해주고,

Set메소드를 통해 수정하거나 값을 입력할 수 있다.