1. 은폐
클래스 내부 필드의 정보 노출을 방지하려면 액세스 한정자를 protected 또는 private로 선언합니다.
Set 및 Get 함수는 외부에서 이 필드에 액세스하도록 정의됩니다.
class Pig
{
protected int weight;
// Getter Get 함수
public int GetWeight() { return weight; }
// Setter Set 함수
public void SetWeight(int weight) { this.weight = weight; }
}
Pig pig = new Pig();
pig.SetWeight(100);
Console.WriteLine(pig.GetWeight());
2. 속성
프로젝트의 범위가 방대해지면 이러한 기능을 하나씩 입력하면서 사용하기 어려울 것입니다.
속성을 사용하면 두 개의 함수를 만들 필요 없이 내부에서 하나로 관리할 수 있습니다.
get – 값을 검색하는 데 사용
설정 – 값을 설정하는 데 사용
public int Weight
{
get { return weight; }
set { weight = value }
}
Pig pig = new Pig();
pig.Weight = 120; // 값 넣기
int weight = pig.Weight; // 값 꺼내기
Console.WriteLine(weight);
01 set, get 중 하나만 사용하고 싶은 경우
protected int age = 7;
public int Age
{
get { return age; }
}
02 내부만 설정하고 싶은 경우
액세스 한정자 집합이 액세스 한정자 비공개로 설정된 경우 외부에서 사용할 수 없습니다.
public int Weight
{
// 값을 꺼내올때 사용
get { return weight; }
// 값을 넣을때 사용
private set { weight = value; }
}
동일한 클래스 내에서 액세스할 수 있습니다.
public void PinkPig()
{
Weight = 100;
}
3. 자동 구현 속성
필드를 선언하지 않고 코드 한 줄로 생성할 수 있다는 큰 장점이 있습니다.
public int Weight{ set; get;}
이 한 줄의 코드는 아래 세 줄의 코드와 동일합니다.
private int _weight;
public int GetWeight() { return _weight; }
public int SetWeight(int _weight) { _weight = value; }
또한 이 초기화 구문이 있습니다.
public int Weight{ set; get;} = 100
이 게시물은 MMORPG Part 1의 요약입니다.