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

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

위키원
이동: 둘러보기, 검색
(새 문서: private 설정된 멤버변수에 대하여 외부 클래스에서 설정이 불가하기 때문에 메소드 형태로 해당 클래스에 만들어 놓은것으로 특징으로는...)
 
잔글
 
(사용자 2명의 중간 판 6개는 보이지 않습니다)
1번째 줄: 1번째 줄:
private 설정된 멤버변수에 대하여 외부 클래스에서 설정이 불가하기 때문에 메소드 형태로 해당 클래스에 만들어 놓은것으로 특징으로는 이름은 set + 해당변수명, 반환유형은 없고 해당변수와 같은 타입의 데이터를 매개변수로 받아서 해당변수에 대입한다.<ref name="개요1"> jacob, 〈[http://blog.naver.com/PostView.nhn?blogId=exploit_code&logNo=220056277321 접근자 및 설정자]〉, 《개인블로그》, 2014-07-10</ref>
+
'''설정자'''란 [[프라이빗]](private)으로 설정된 [[멤버변수]]에 대하여 외부 [[클래스]]에서 설정이 불가하기 때문에 [[메소드]] 형태로 해당 클래스에 만들어 놓은 것을 말한다. 설정자의 특징으로는 이름은 set + 해당변수명, 반환유형은 없고 해당변수와 같은 타입의 [[데이터]]를 매개변수로 받아서 해당변수에 대입한다.<ref name="개요1"> jacob, 〈[http://blog.naver.com/PostView.nhn?blogId=exploit_code&logNo=220056277321 접근자 및 설정자]〉, 《개인블로그》, 2014-07-10</ref>
 +
 
 +
==개요==
 +
[[자바]]에서 [[프라이빗]](private)으로 설정되어있는 [[필드]]의 값을 외부에서 변환이 불가하기 때문에 [[메소드]]를 통해 값을 설정할 수 있도록 해준다. 'set필드명() 형식'의 형태로 사용한다.
 +
 
 +
==특징==
 +
[[클래스]]에서 설정자를 사용하는 이유는 [[프라이빗]](private)로 선언된 [[변수]]를 다른 클래스에서 설정하거나 접근할 수 없다. 그렇기 때문에 값을 넣기 위해서는 설정자를 사용해야한다.
 +
 
 +
class Sample() {
 +
      private String example;
 +
 +
      public void setExample(String e) {
 +
            example = e;
 +
      }
 +
}
 +
 
 +
위와 같이 생성해 줬을 때 외부에서 [[클래스]]를 사용해서 값을 설정할 수 있다.
 +
 
 +
public class SampleMain {
 +
     
 +
      Sample sampleA = new Sample();
 +
 +
      sampleA.setExample("안녕하세요");
 +
}
 +
 
 +
이렇게 설정자에서 매개변수를 통해 잘못된 값이 넘어오는 경우를 사전에 차단이 가능하며 필요할 때는 필드값을 계산해서 반환이 가능하다.<ref name="내용"> 개발은 전투다, 〈[https://js2prince.tistory.com/entry/java-%EC%84%A4%EC%A0%95%EC%9E%90%EC%99%80-%EC%A0%91%EA%B7%BC%EC%9E%90-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B0%9D%EC%B2%B4-String-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%98-%EB%A9%94%EC%84%9C%EB%93%9C java 설정자와 접근자, 문자열 객체, String 클래스의 메서드]〉, 《개인블로그》, 2018-08-29</ref>
 +
 
 +
[[객체지향언어]]에서 [[캡슐화]]의 목적 중 [[정보은닉]]이라는 것에 의해 구현의 세부사항을 [[클래스]] 안에 감추어야 한다. 이 때 접근 제어중 [[프라이빗]]을 [[변수]] 앞에 적게 되면 외부의 클래스에서 접근할 수 없다.
 +
 
 +
그렇기 때문에 프라이빗을 사용해 변수는 클래스 내부에 감추고, 메소드들은 외부에서 사용하도록 허용하는 방법을 활용한다. 이 때 클래스 내부에 저장된 [[필드]]값이 꼭 필요한 경우를 위해 설정자와 [[접근자]]를 사용한다.
 +
 
 +
설정자라는 특수한 [[메소드]]를 클래스 안에 넣어 내부에서 변수를 읽어 외부로 전달해주는 형식으로 사용하면 내부의 필드를 숨기며 외부에 출력해주는 형태가 된다.
 +
 
 +
===사용이유===
 +
설정자를 사용하게되면 이후에 클래스를 업그레이드 할 때 편리하다. 또한 외부의 접근을 제한하면서 메서드를 통해서만 값을 전달할 수 있어 잘못된 값이 넘어가는 것을 사전에 차단 가능하고, 필요할 때마다 필드값을 변환할 수 있다.
 +
<ref name="자료2"> alexYeom, 〈[https://alexyeom.tistory.com/11 접근자와 설정자]〉, 《개인블로그》, 2018-03-03</ref>
  
 
{{각주}}
 
{{각주}}
5번째 줄: 40번째 줄:
 
==참고자료==
 
==참고자료==
 
* jacob, 〈[http://blog.naver.com/PostView.nhn?blogId=exploit_code&logNo=220056277321 접근자 및 설정자]〉, 《개인블로그》, 2014-07-10
 
* jacob, 〈[http://blog.naver.com/PostView.nhn?blogId=exploit_code&logNo=220056277321 접근자 및 설정자]〉, 《개인블로그》, 2014-07-10
 +
* 개발은 전투다, 〈[https://js2prince.tistory.com/entry/java-%EC%84%A4%EC%A0%95%EC%9E%90%EC%99%80-%EC%A0%91%EA%B7%BC%EC%9E%90-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B0%9D%EC%B2%B4-String-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%98-%EB%A9%94%EC%84%9C%EB%93%9C java 설정자와 접근자, 문자열 객체, String 클래스의 메서드]〉, 《개인블로그》, 2018-08-29
 +
* alexYeom, 〈[https://alexyeom.tistory.com/11 접근자와 설정자]〉, 《개인블로그》, 2018-03-03
  
==같이보기==
+
==같이 보기==
 
* [[멤버변수]]
 
* [[멤버변수]]
 
* [[클래스]]
 
* [[클래스]]
 
* [[메소드]]
 
* [[메소드]]
 
* [[프라이빗]]
 
* [[프라이빗]]
 +
* [[접근자]]
 +
* [[자바]]
 +
* [[객체지향언어]]
 +
* [[캡슐화]]
 +
* [[정보은닉]]
 +
 +
{{프로그래밍|검토 필요}}

2020년 9월 3일 (목) 12:26 기준 최신판

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