"설정자"의 두 판 사이의 차이
(새 문서: private 설정된 멤버변수에 대하여 외부 클래스에서 설정이 불가하기 때문에 메소드 형태로 해당 클래스에 만들어 놓은것으로 특징으로는...) |
잔글 |
||
(사용자 2명의 중간 판 6개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | private 설정된 | + | '''설정자'''란 [[프라이빗]](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]
각주[편집]
참고자료[편집]
- jacob, 〈접근자 및 설정자〉, 《개인블로그》, 2014-07-10
- 개발은 전투다, 〈java 설정자와 접근자, 문자열 객체, String 클래스의 메서드〉, 《개인블로그》, 2018-08-29
- alexYeom, 〈접근자와 설정자〉, 《개인블로그》, 2018-03-03
같이 보기[편집]