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

접근자

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

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

개요[편집]

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

특징[편집]

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

class Sample() {
     private String example;

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

위와 같이 필드프라이빗으로 선언되면 클래스 내부에서만 사용이 가능하기 때문에 example에 대한 접근자와 설정자가 필요하다.[2]

public class SampleMain {
     public static void main(String[] args) {
          Sample sampleA = new Sample();

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

          System.out.println(sampleA.getExample());
     }
}

메인 클래스에서 Sample의 객체를 생성하고 설정자 메소드를 통해 값을 넣어주고 접근자 메소드를 활용해 "안녕하세요"를 출력했다.

객체지향언어에서 캡슐화의 목적 중 정보은닉이라는 것에 의해 구현의 세부사항을 클래스 안에 감추어야 한다. 이 때 접근 제어중 프라이빗을 변수 앞에 적게 되면 외부의 클래스에서 접근할 수 없다. 그렇기 때문에 프라이빗을 사용해 변수는 클래스 내부에 감추고, 메소드들은 외부에서 사용하도록 허용하는 방법을 활용한다. 이 때 클래스 내부에 저장된 필드값이 꼭 필요한 경우를 위해 설정자와 접근자를 사용한다. 접근자라는 특수한 메소드를 클래스 안에 넣어 내부에서 변수를 읽어 외부로 전달해주는 형식으로 사용하면 내부의 필드를 숨기며 외부에 출력해주는 형태가 된다.

사용이유[편집]

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

각주[편집]

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

참고자료[편집]

같이 보기[편집]


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