C# class 기본

이진호·2023년 11월 24일

C#... 그리고 Unity

목록 보기
3/15

Project의 구성단위중 하나로써 보통 한개의 Project에 여러개의 class를 가지고 있다.


구성요소

  • Main()
    Project의 시작점.

  • 멤버
    class를 이루는 요소들을 멤버라고 한다.
    함수, 메소드, class등 class안에 속한 것들을 뜻한다.


사용이유

C#에서 추구하는 객체 지향의 핵심이다.

프로젝트의 볼륨이 클 경우 동일 기능의 코드가 중복될 수 밖에 없다.
이것을 클래스라는 단위로 더하는 기능, 곱하는 기능, 정렬하여 처리 하는 기능등으로 분류하여, 중복되는 코드를 줄이고 기능단위로 모듈화하여 프로그램을 건강하게 관리할 수 있다.

기본설정

  • 접근 한정자
    • private : 비공개.
    • public : 공개.
    • internal : 같은 어셈블리에만 공개.
    • protected : 자식 클래스에게만 공개.
    • protected internal: 같은 어셈블리의 클래스 또는 외부의 자식클래스에게만 공개.
    • private protected : 같은 어셈블리에있는 자식클래스에게만 공개.
※추가 참고사항
[SerializeField]
private int age;
//[SerializeField]는 다른 클래스에는 공개되지 않고, Unity Component에 넣고 싶을때 사용할 수 있다.

접근 한정자 사용예시

<예시_1>

public선언이 없으므로 Happy class에서 호출 할 수 없다.

<예시_1-1>

<예시_1-1> 같이 public을 선언하면 Animal 클래스에 있는 int dog와 string cat을 호출할 수 있다.

<예시_2>

<예시_2>과 같이 static을 선언하는 경우 인스턴스 생성없이 바로 호출하여 사용할 수 있다.


프로퍼티

외부 class에서 초기화하여 사용할 수 있는 변수.

키워드

  • get; - 호출자에게 값을 반환.
  • set; - 호출자에게서 값을 저장.

get; set; 키워드에 private을 선언하여 외부로 인해 값이 변경되는걸 막거나, if문등 조건을 걸어 반환을 제한 시킬 수 있다.

<예시_1>
class Test
{ 
	public string name { get; set; } 
    
    public voic Print()
    {
    	Console.WriteLine(name);
    }
}

class Program
{
	static void Main()
    {
    	Test test = "초기화";
        test.Print();
    }
}
//결과값: 초기화

Test클래스에 필드값을 생성하고 다른 클래스에서 호출하여 초기화하여 사용 할 수 있으나, Test에 있는 필드 값이 변경되면 안되는 경우
<예시_2>
public string name { get; private set; } = "읽기 전용 속성";

필드값을 private으로 선언하여 상수로 지정하여 읽기전용으로 설정 할 수 있다.
profile
콜라 없는 내 인생은 김빠진 콜라

0개의 댓글