Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

닷넷!시작하기

Microsoft. NET 을 시작하는 분들을 위한 강좌입니다. 주로 기초적인 내용과 때론 기본적인 내용을 다룹니다

Property (프로퍼티)

작성자 : 박종명
최초 작성일 : 2008-05-30 (금요일)
최종 수정일 : 2008-05-30 (금요일)
조회 수 : 3286

Property 클래스의 메쏘드를 멤버 변수처럼 접근할 수 있게 한다. (그러나 실제로는 메쏘드 이다)
 
일반적으로 객체 지향의 캡슐화 개념에서 클래스의 멤버 변수는 외부에서 직접 접근 및 변경을 허용하지 않도록
한다. 따라서 변수에 대한 접근과 변경은 별도로 노출한 공개 메쏘드를 통해서 이루어 지도록 한다.

이 공개된 메쏘드는 변수에 대한 사용자의 요청(접근 or  변경) 사이에 특정한 비지니스 로직을 포함하여 변수 값에 대한 투명성과 보안성을 강화 하기도 한다. 이러한 메쏘드를 갯터 , 셋터 라고 부른다.
 
* 프로퍼티 사용예
public string myProperty;
public string MyProperty{
 get { return this.myProperty }
 set { this.myProperty = value; } //value 키워드는 이 프로퍼티에 셋팅한 값이 된다
}
 
즉, myProperty 의 변수에 대한 접근 제어를 MyProperty 라는 프로퍼티가 수행하게 된다.
 
 
* 프로퍼티의 특징  

1. 논리적인 멤버 변수
   사용하는 입장에서는 단순히 변수처럼 값을 읽어오거나 셋팅하지만 프로퍼티 내부적으로 어떠한 비지니스 로직을
   가질 수 있다.    (일반적인 메쏘드가 그러하듯이..)
   즉 사용자가 입력한 값 그대로가 저장,호출 되는 것이 아니라  특정한 로직으로 필터링 혹은 가공된 데이터가 저장,
   호출될 수 있게 한다.
 
2. 접근과 변경(갯터,셋터)를 동일한 이름으로 사용 가능케 한다
   메쏘드는 한 클래스 내에서 동일한 이름이 될 수 없다(오버로딩 말고)
   그러나 프로퍼티를 사용하면 변수에 대한 읽기,쓰기를 동일한 이름의 프로퍼티를 통해서 수행할 수 있게 한다
   (변수처럼..)
 
3. static 프로퍼티도 생성 가능하다
 
4. 프로퍼티는 실제로 변수가 아니다.
  프로퍼티는 결국 메쏘드 인 것이다. 따라서 변수처럼 메모리 주소를 가질 수 없다. 즉 클래스의 인스턴스가 생성될
  때 메모리에 올라가지 않는다. 따라서 주소값을 기반으로 하는 ref,out 키워드와 함께 인자로 사용될 수 없다

5. virtual,abstract,override 로 선언할 수 있다(일반적인 메쏘드와 동일하다)

6. void 형이 될 수 없다. (메쏘드와의 차이점) 
  
 

이름
비밀번호
홈페이지
JM <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요