접근제어자란?

클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다.

접근 제어자 같은경우는 접근 범위를 설정한다.

 

접근제어자 종류

public , protected, default, private

 

접근제어자에 대한 설명

-private : 같은 클래스 내에서만 접근이 가능.

-default : 같은 패키지 내에서만 접근이 가능.

             -protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이    가능.

             -public : 접근 제한이 전혀 없다.

 

크기 순 : public > protected  > default > private

 

제어자(캡슐화)는 어떤 경우에 사용하는가?

-      데이터에 대한 접근설정, 제한을 할 때 사용한다.

-      데이터에 접근제한을 둬서 외부에서 데이터에 직접적으로 접근, 변경하지 못하도록 한다.

-      클래스 내부에서만 쓰이는 부분을 감추기 위해 쓴다.

 

제어자(캡슐화)를 사용함으로써 생기는 장점

접근에 제한을 둠으로써 데이터가 유효한 값을 유지할 수 있고, 데이터의 안정성이 높아진다.

 

제어자(캡슐화)는 어떻게 사용하는가?

접근을 제한해두고 싶은 범위에 따라 설정을 하는데 보통 private로 제한을 둬서 다른 클래스에서 접근을 못하도록 한다.

 

변수를 private로 설정하여 직접적으로 값을 적용,변환시키지 못하도록 하고,

해당변수에 public으로 설정된 getter,setter 메서드를 만들어서 그 메서드를 통해 값을 설정,

접근하도록 한다.

 

예를 들어 시간을 설정할 경우 하루는 24시간으로 이뤄져 1미만의 값이나 24를 초과하는 값이

들어가면 안되도록 해야 한다. 하지만 변수 그 자체로만 두면 어디서든 마음데로 잘못된 값( 0이나 27같은)을 적용시킬 수가 있다. 그렇기 때문에 시간이라는 변수를 private로 설정한 후에,

이걸 public 메서드로 감싸면, 메서드 안에 조건을 넣어 잘못된 접근을 차단시킬 수가 있게 된다.

 

public class Time

{

             private int hour;

 

             public int getHour(){

                           return hour;

             }

             public void setHour(int hour){

                           if(hour < 0 || hour > 24)

                                        return;

                           this.hour = hour;

             }

}

Posted by 윤연식
,