[Java] 접근제어자

gobeul·2023년 8월 16일
0

CS

목록 보기
1/4
post-thumbnail

java 코드를 보면 클래스나 변수, 메서드 앞에 public이 붙는 것을 심심치 않게 볼 수 있다.

이건 무슨의미인지, 또 public 이 없으면 어떻게 되는지 알아보자


접근제어자 Access Modifier

접근 제어자는 객체 사용자가 무분별하게 객체 내부적으로 사용하는 변수나 메서드에 접근하는 것을 막는다.
💡 무분별한 접근을 막음으로써 개발자가 의도하지 못한 오동작을 방지할 수 있다.

접근제어자는 private, default, protected, public 가 있다.
뒤로 갈수록 더욱 많은 접근을 허용한다.

private

private 가 붙은 변수, 메서드는 해당 클래스에서만 접근이 가능하다.

private 접근제어자가 붙은 변수 secret과 메서드 getSecret은 Sample 클래스에서만 접근이 가능하다.

사진처럼 Sample 클래스가 아닌 다른 곳에서 접근을 시도하면 에러가 나온다.


default

default 가 붙은 변수, 메서드는 같은 패키지내에서만 접근 가능하다.
또한 default 는 생략 가능하다. 즉, 아무것도 붙지 않는다면 default 이다.

동일 패키지안이라면 오류없이 접근 가능하다.


protected

protected 가 붙은 변수, 메서드는 같은 패키지이거나 해당 클래스를 상속받은 다른 클래스에서만 접근이 가능하다.

Main 클래스와 다른 패키지 pack2 에 클래스를 생성했다.


동일 패키지에 있는 sample 클래스의 protected 변수는 접근이 가능하지만 다른 패기지의 클래스 SampleTwo의 protected 변수에는 접근이 불가능함을 알 수 있었다.

하지만 Main 클래스가 SampleTwo 클래스를 상속 받았기 때문에 Main 클래스의 객체에서는 접근이 가능하다.


public

public 이 붙은 변수, 메서드는 어떤 클래스에서라도 접근이 가능하다.

위의 sampleTwo의 protected 변수를 public 으로 바꿨더니 접근이 가능했다.


참고

profile
뚝딱뚝딱

0개의 댓글

관련 채용 정보