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

"설정자"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
잔글 (같이 보기)
53번째 줄: 53번째 줄:
 
* [[객체지향언어]]
 
* [[객체지향언어]]
 
* [[캡슐화]]
 
* [[캡슐화]]
 +
* [[정보은닉]]
  
 
{{프로그래밍|검토 필요}}
 
{{프로그래밍|검토 필요}}

2020년 9월 3일 (목) 09:57 판

설정자프라이빗(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 이 설정자 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.