Unity 개발일지

[C#] 프로퍼티(Property)란? 본문

C#

[C#] 프로퍼티(Property)란?

아머르 2024. 4. 23. 20:40

유니티로 개발을하다가 자료를 찾다보면 프로퍼티 라는 용어를 자주 보게된다.

그렇다면 프로퍼티란 무엇일까?

 

간단하게 말하면 객체의 필드값들을 은닉화를 해서 외부에서는 접근할 수 없는데

외부에서 접근할 수 있도록 매개역할을 해주는 것이 프로퍼티이다.

 

 

 

사용예시

[접근 제한자]  [데이터 타입]  프로퍼티명

{

    get

    {

          // 필드를 반환하거나 다른 로직 수행

    }

    set

    {

        // 필드에 값을 설정하거나 다른 로직 수행

    }

}

 

먼저 Person이라는 class를 정의한다.

필드값(name과 age)은 private로 외부에서는 직접 사용할 수 없다.

 

그리고 public으로 Name 메서드를 정의하는데

get 접근자로 private상태인 name을 return 해주고,

set 접근자로 외부에서 value를 지정하여 name에 할당할 수 있다.

둘 다 사용할 필요는 없으며 한가지만 사용해도 된다.

 

set해주는 방법은 간단하다.

Main함수에서 해당 객체를 만들어주고 .을 입력하여 메서드를 찾아 입력해주면 된다.

.을 입력 시 사용할 수 있는 메서드를 볼 수 있다.

 

자동구현 프로퍼티(Auto-Implemented Properties)

위의 Person 클래스를 자동구현 프로퍼티를 이용하면 더 간단하게 구현할 수 있다.

자동구현 프로퍼티는 필드에 기본적인 Get, Set 작업만을 할 때 사용하며 컴파일러가 자동으로 필드를 생성해준다.

 

이때 생성되는 필드는 public이며 set 접근자 앞에 private를 추가하여 값을 변경할 수 없도록 구현할 수도 있다.

이렇게 정의할 경우 Main에서 person.Name에는 접근할 수 없다.(set값을 설정할 수 없음)

프로퍼티를 선언과 동시에 값을 초기화하는 것도 가능하다.

Name의 "Jhon"은 프로퍼티 생성 시 초기화 한 것이다.

반응형