본문 바로가기

Language & Framework/Java

JAVA 접근 제어자의 활용 예제

 

자바의 클래스와 메서드의 접근 제어자는 왜 필요한 걸까?

 

 

1. 클래스 내부의 데이터를 보호하기 위해서

 

단순히 생성자를 이용하는 것으로는 사용자가 의도치 않은 방법으로 데이터에 접근하는 것을 막을 수 없다.

만약 Watch ( int hour, int minute ) { this(hour,int) }로 데이터를 설정했다면 27시 80분, -15시 -10분 같은 설정이 가능해졌을 것이다.

 

 

 

2. 생성자의 접근 자체를 막기 위해서

예시를 위해 간단하게 만든 MathMath라는 클래스다.

이 클래스는 상수와 간단한 메서드만 구현되어 있는 클래스이기 때문에 인스턴스를 생성해야할 이유가 없다.

private로 설정하면 애초에 생성자 자체를 접근하지 못하게 만들어서 인스턴스를 생성하지 못하게 만든다.

또한 접근제어자가 private로 설정될 경우 super()로 상속도 불가능하기 때문에 클래스 앞에 final을 붙여서 상속이 불가능함을 명시적으로 알려주는 것이 좋다.