
public class Actor // 누구나 사용 가능한(public) Actor 클래스 선언
{
public int level; // 인스턴스 시 사용 가능한 필드
public int LevelUp(int add_level) // 메서드
{
return add_level + level;
} // 클래스의 필드, 속성, 메서드 및 이벤트를 모두 클래스 멤버
}
public class 클래스_이름을 통해 선언public 을 써줌으로써 누구나 이 클래스의 인스턴스를 만들 수 있다 Actor person1 = new Actor(); // 인스턴스화
person1.level = 10; // 필드 값 수정
Debug.Log(person1.level); // 필드 값 읽기
Debug.Log(person1.LevelUp(5)); // 메서드 호출
public class Actor
{
public int level = 1; // 공개 필드
private float exp; // 비공개 필드
string name = "Kim"; // 기본형 역시 비공개 필드
}
public Type 변수는 어떤 클래스든 이 필드를 사용 가능private Type 변수는 해당 변수가 선언된 클래스 내에서만 사용 가능(접근 제한)public private 둘 다 메서드에도 동일하게 사용public사용)get과 set접근자를 이용해 필드의 값을 읽거나 변경 (get/set은 다음 장에서 자세히)public class Person
{
private int _age; // 필드: _age에 대해 외부에서 직접 접근 불가
// 속성Age를 통해 _age 필드에 간접적으로 접근가능
public int Age
{
get { return _age; } // get 통해 값을 읽음
set // set 통해 값을 저장
{
if (value > 0) // 유효성 검사. 양수일 때만 저장 허용
{
_age = value;
}
}
}
}
public class Person
{
public int Age {get; set;} // 자동 구현 property
}
public class Program
{
static void Main()
{
Person person = new Person();
person.Age = 10; // 값 저장
Debug.Log(person.Age); // 값 읽기. 출력: 10
}
}
Age는 별도의 필드 없이도, 자동으로 private 필드가 생성되고 값이 저장됨Microsoft | 클래스 소개
C# 필드(Field) vs. 프로퍼티(Property) 차이 비교 by 꼬예