검수요청.png검수요청.png

설정자

위키원
이동: 둘러보기, 검색

설정자프라이빗(private)으로 설정된 멤버변수에 대하여 외부 클래스에서 설정이 불가하기 때문에 메소드 형태로 해당 클래스에 만들어 놓은 것을 말한다. 설정자의 특징으로는 이름은 set + 해당변수명, 반환유형은 없고 해당변수와 같은 타입의 데이터를 매개변수로 받아서 해당변수에 대입한다.[1]

개요[편집]

자바에서 프라이빗(private)으로 설정되어있는 필드의 값을 외부에서 변환이 불가하기 때문에 메소드를 통해 값을 설정할 수 있도록 해준다. 'set필드명() 형식'의 형태로 사용한다.

특징[편집]

클래스에서 설정자를 사용하는 이유는 프라이빗(private)로 선언된 변수를 다른 클래스에서 설정하거나 접근할 수 없다. 그렇기 때문에 값을 넣기 위해서는 설정자를 사용해야한다.

class Sample() {
     private String example;

     public void setExample(String e) {
           example = e;
     }
}

위와 같이 생성해 줬을 때 외부에서 클래스를 사용해서 값을 설정할 수 있다.

public class SampleMain {
     
     Sample sampleA = new Sample();

     sampleA.setExample("안녕하세요");
}

이렇게 설정자에서 매개변수를 통해 잘못된 값이 넘어오는 경우를 사전에 차단이 가능하며 필요할 때는 필드값을 계산해서 반환이 가능하다.[2]

객체지향언어에서 캡슐화의 목적 중 정보은닉이라는 것에 의해 구현의 세부사항을 클래스 안에 감추어야 한다. 이 때 접근 제어중 프라이빗변수 앞에 적게 되면 외부의 클래스에서 접근할 수 없다.

그렇기 때문에 프라이빗을 사용해 변수는 클래스 내부에 감추고, 메소드들은 외부에서 사용하도록 허용하는 방법을 활용한다. 이 때 클래스 내부에 저장된 필드값이 꼭 필요한 경우를 위해 설정자와 접근자를 사용한다.

설정자라는 특수한 메소드를 클래스 안에 넣어 내부에서 변수를 읽어 외부로 전달해주는 형식으로 사용하면 내부의 필드를 숨기며 외부에 출력해주는 형태가 된다.

사용이유[편집]

설정자를 사용하게되면 이후에 클래스를 업그레이드 할 때 편리하다. 또한 외부의 접근을 제한하면서 메서드를 통해서만 값을 전달할 수 있어 잘못된 값이 넘어가는 것을 사전에 차단 가능하고, 필요할 때마다 필드값을 변환할 수 있다. [3]

각주[편집]

  1. jacob, 〈접근자 및 설정자〉, 《개인블로그》, 2014-07-10
  2. 개발은 전투다, 〈java 설정자와 접근자, 문자열 객체, String 클래스의 메서드〉, 《개인블로그》, 2018-08-29
  3. alexYeom, 〈접근자와 설정자〉, 《개인블로그》, 2018-03-03

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 설정자 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.