Property란
프로퍼티란 속성이라는 의미를 가지고, 클래스안에서 변수를 선언 후 다른 클래스에서 사용을 하려면 Public을 붙여 줘야하는데 정보 은닉을 위해 private로 선언후 get,set 메소드를 지원하는 유니티 메소드를 사용해서 구현할 수 있다!
Property의 특징
1. 프로퍼티를 사용하면 클래스가 구현 또는 코드를 숨기는 동시에 값을 가져오고 설정하는 방법을 공개적으로 노출할 수 있습니다.
2. get 속성 접근자는 속성 값을 반환하고, set 접근자는 새 값을 할당하는데 사용합니다.
3. set 접근자의 value 키워드는 set 접근자가 할당하는 값을 정의하는데 사용합니다.
4. set 접근자만을 구현하면 쓰기 전용, get 접근자만을 구현하면 읽기 전용입니다.
기본형식
class 클래스 이름
{
데이터 타입 필드명;
접근한정자 데이터타입 프로퍼티이름
{
get
{
return 필드명;
}
set
{
필드명 = value;
}
}
}
사용 예제
아래는 Age의 값을 변경할 때 20미만을 거부하는 프로퍼티이다.
using UnityEngine;
using System.Collections;
public class PropertyTest : MonoBehaviour
{
private int age;
public int Age
{
get
{
return age;
}
set
{
if (value < 20) {
print ("20세 미만은 사용 불가합니다.");
} else {
age = value;
AgeChanged ();
}
}
}
// Use this for initialization
void Start ()
{
// Set value of Age
Age = 10; // value is under 20 so assign value is fail.
// Set value of Age
Age = 25; // value is over 20 so assign value is success.
}
void AgeChanged()
{
print ("나이가 변경되었습니다.");
}
}