본문 바로가기
  • 불확실한 내일을 위해
유니티 C#/C#

C#기초 - 클래스 사용법

by 그린초코 2023. 5. 11.

객체의 공통적인 속성과 기능을 간추리는 것을 추상화라고 하는데, 이때 추상화로 객체의 속성과 기능을 정의하는 것을 클래스라고 한다. 

 

클래스는 메서드와 변수를 모아놓은 것이다. 

클래스를 통해 관계가 있는 변수와 메서드를 하나로 합칠 수 있어 스크립트를 관리하기 쉽다.

클래스는 직접 만들 수도 있고, 유니티가 제공하는 클래스도 있다. (Debug 등..)

 

형식은 아래와 같다.

class 클래스명
{
    멤버 변수 선언;
    멤버 메서드 구현;
}

 

(메서드 뜻은 아래 참고)

https://greenchoco.tistory.com/134

 

C# 기초 메서드란? (+인수, 반환값 뜻)

스크립트를 처리 블록으로 분해하고 이름을 붙여서 사용할 수 있는데, 이것을 "메서드"라고 한다. 메서드는 주로 처리를 기능 단위로 묶거나, 메서드에 값을 전달해 계산하거나 계산 결과를 돌

greenchoco.tistory.com

클래스는 데이터형과 비슷한 형식으로 쓸 수 있다.

 

예를들어 데이터형 중 정수형 int 를 쓸 때 변수 num 을 써서 int num(정수형 변수명;) 으로 선언할 수 있는 것처럼,

만약 내가 player 라는 이름의 클래스를 만들고 변수 player1 를 쓴다면  player player1;(클래스 변수명;) 으로 쓸 수 있다.

즉 내가 만들어낸 클래스명 player가 데이터형 int와 비슷한 형식으로 쓰인다는 뜻이다. 

(int 가 뭔지 궁금하면 아래 내용 참고)

https://greenchoco.tistory.com/96

 

C#기초 자주 사용하는 데이터형(자료형) 종류

데이터 형 이름 설명 값의 범위 int 정수형 -2,1471,483,648 ~ 2,1471,483,647 10번 반복시키거나 개수 등을 나타날 때 쓴다. float 실수형 (부동소수점형) -3.402823E+38 ~ 3.402823E+38 좌표나 속도를 나타낼 때 쓴다

greenchoco.tistory.com

 

이때 int num 에는 1이나 10같은 숫자를 대입할 수 있고, player형의 player1 변수에는 플레이어의 실체를 대입한다.

이때 이 실체를 인스턴스를 작성해 대입해야 하는데, 인스턴즈를 만들기 위해서는 new 클래스명() 을 써야한다.

(new 인스턴스의 구체적인 방법은 아래를 참고)

https://greenchoco.tistory.com/79

 

C#기초 인스턴스란? (예약어 new를 통한 인스턴스화)

인스턴스(instance)란, 어떠상 상황이나 행동 등 무언가를 특정한 형태로 만드는 것을 말한다. 유니티에서는 객체를 생성하는 것을 인스턴스화한다고 하는데, 이때 C#의 예약어 new를 사용한다. 예

greenchoco.tistory.com

 

그리고 클래스를 쓸 때 public이나 private같은 접근수식자(접근제한자)가 같이 쓰인다.

(접근수식자(접근제한자)의 구체적인 내용은 아래를 참고)

https://greenchoco.tistory.com/135

 

C#기초 캡슐화와 접근수식자(접근제한자) public, private 등

캡슐화(Encapsulation) ​ 데이터를 캡슐화 한 것. 어떤 객체를 설명하기 위핸 필드와 메서드를 안데 모아 정의하고 외부에 공개할 멤버와 공개하지 않을 멤버를 구분한다. 객체의 속성, 행위를 각각

greenchoco.tistory.com

위에 내용을 토대로 예시를 하나 들어보자

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class player
{
    private int hp = 100;
    private int stm = 40;
    public void Attack()
    {
        Debug.Log(this.stm + " 데미지를 입혔다!");
    }
    public void Damage(int damage)
    {
        this.hp -= damage;
        Debug.Log(damage + " 데미지를 입었다!");
    }
}
public class test : MonoBehaviour
{
    void Start()
    {
        player player1 = new player();
        player1.Attack();
        player1.Damage(30);
    }
}

결과 : 

40 데미지를 입혔다!

30 데미지를 입었다!

 

(여기서 쓰인 this 뜻은 아래 참고)

https://greenchoco.tistory.com/136

 

C#기초 this 키워드 뜻

this 는 자신의 인스턴스를 가리키는 키워드이다. this.변수 형태로 쓰이지만 클래스, 구조체, 인터페이스 등을 배열처럼 인덱스를 사용해 접근할 수 있게 해주는 인덱서(Indexer)에 사용되기도 한다

greenchoco.tistory.com

 

728x90

댓글