Class는 Fields와 Methods를 하나로 묶은 사용자 정의 타입이다.
즉 기존에 사용하던 int, float, double 등의 자료형과 같은 느낌이다.
특징으로는 참조 형식이며, 단일 상속 및 다중 상속이 가능하다.
class Unit
{
// Fields
private string name;
private int level;
// Methods
public void PrintInfo()
{
Console.WriteLine($"Name: {name}, Level: {level}");
}
// 매개변수가 없는 디폴트 생성자
public Unit()
{
name = "Unknown";
level = 0;
}
// 매개변수를 받는 생성자
public Unit(string newName, int newLevel)
{
name = newName;
level = newLevel;
}
}
static void Main(string[] args)
{
Unit unit1 = new Unit(); // Unit 클래스의 인스턴스 생성
Unit unit2 = new Unit("AA", 10);
unit1.PrintInfo(); // 출력 : Name: Unknown, Level: 0
unit2.PrintInfo(); // 출력 : Name: AA, Level: 10
}
위 예시처럼 Class 안에 있는 데이터들과 함수들을 사용할 수 있다.
그렇기에 보통 Fields는 private 접근 제한자를 사용하여 외부에서 직접적인 접근을 제한하고, 필요한 경우에는 Property를 통해 간접적으로 접근한다.
Property란 클래스 멤버로서, 객체의 필드 값을 읽거나 설정하는 데 사용되는 접근자 메서드의 조합이다.
[접근 제한자] [데이터 타입] 프로퍼티명
{
get
{
// 필드를 반환하거나 다른 로직 수행
}
set
{
// 필드에 값을 설정하거나 다른 로직 수행
}
}
공부하면서 예제를 보니 보통 자동 프로퍼티라고 하는 형식으로 사용하는 것 같다.
자동 프로퍼티 형식 : [접근 제한자] [데이터 타입] 프로퍼티명 { get; set;}
개념만 들었을 때는 간단하게 이해할 수 있을 것 같은데 막상 응용해서 코딩을 해보려고 하니 머리가 아파진다.
꼬리에 꼬리를 물면서 계속 연결되는 class 시간이 조금 지난 뒤 어느 정도 익숙해졌을 때 다시 공부해 봐야 될 것 같다.
'내배켐 Unity TIL' 카테고리의 다른 글
Unity 11일차 TIL - Func, Action (0) | 2024.04.25 |
---|---|
Unity 10일차 TIL - 델리게이트(Delegate), 람다(Lamda) (0) | 2024.04.25 |
Unity 8일차 TIL - 배열과 리스트 (0) | 2024.04.22 |
Unity 4일차 TIL - Unity 광고 안드로이드 적용 시 오류 수정 (1) | 2024.04.18 |
Unity 3일차 TIL - 영어 타자 연습 (0) | 2024.04.17 |