C# 기본 문법(클래스, 생성자, This, 속성, 이니셜 라이저)

로젠·2024년 4월 23일
0

게임 프로그래밍

목록 보기
15/49
post-thumbnail

클래스

클래스는 변수와 함수를 사용할 수 있는 구조로 개체에 특성과 기능을 구현한다.

클래스의 특성

정보 은닉성(private, public) : 외부에 공개할 것은 public을 사용하여 공개하고, 공개하지 않을것은 private를 사용하여 비공개한다.

캡슐화 : 클래스 안의 기능을 캡슐로 만들어 데이터를 외부에서 보호하는 것을 말한다.

상속성 : 이미 정의해둔 변수나 함수를 가져와 더 추가하여 사용하는 것이다.

추상성(가상화)

다형성(오버로딩, 오버라이딩) : 객체의 속성이나 기능에 따라 여러 형태를 가질 수 있는 성질을 말한다.

생성자

생성자는 동적 할당을 할 때 자동으로 실행된다. 생성자 안에서는 print 사용이 불가능하다. 입력받고 싶은 경우는 print가 아닌 Debug.Log를 사용해야 한다. 생성자는 params와 오버로딩이 사용 가능하다. 생성자를 만들지 않으면 기본 생성자를 자동 생성하지만 변수를 받는 생성자를 만들면 기본 생성자는 사라진다.

class Character
{
	public Character()
    {
    	//생성자
    }
}

This

현재 호출된 객체 자기 자신을 의미한다.

class Character
{
	private string name;
    public Character(string name)
    {
    	this.name = name;
    }
}

속성

get 클래스 안에서 변수의 값을 불러올 수 있고 set을 사용하면 원하는 변수에 원하는 값을 줄 수 있다.

class Character
{
	private int id;
    public int Id
    {
    	get {return id};
    }
}
class Character
{
	private int id;
    public int Id
    {
    	get => id;
        set
        {
        	magician = value;
        }
    }
}

이니셜 라이저

생성자에서 이니셜 라이저를 사용하면 원하는 형의 생성자로 이동하여 값을 할당해 준다.

class Character
{
	private string name;
    private float health;
    private float magician;
    public Character(string name)
    :this(name,0.0f,0.0f)
    {
    	Debug.Log($"name = {name}");
    }
    public Character(string name, float health, float magician)
    {
    	this.name = name;
        this.health = health;
        this.magician = magician;
    }
}

0개의 댓글