[SBS게임아카데미] 1인개발 프로그래밍 (C#, 유니티)

[9] C# 클래스와 생성자 (SBS게임아카데미 7일차_230722_토)_본수업

개발린마케터 2023. 7. 23. 22:18
반응형

과제 풀이가 너무 길어서 수업 내용과 쪼갰다.

아직도 시계열 배열은 머릿 속이 하얗다...

 

[클래스(Class)]

   - 클래스는 지난 주 마지막에 약간 개념의 이해 정도로 했는데 다시 설명하는 게임 개발에 들어가는 각 요소들. 예를 들면, 플레이어, 펫, 보스 등등에 대해서 상태와 기능을 정의하는 것이라고 보면 될 것 같다. 

   - 함수는 밑에 따로 써놓고 위에서 불러오는 형태였는데, 클래스는 통상 코드를 입력하던 곳 밖에서 정의하고 당겨오는 형태이다.  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Learncs
{
    class Human
    {
        //상태. 멤버 변수 or 멤버 필드
        public int m_age;   //나이라는 상태(int)를 넣고
        public string m_name;	//이름이라는 상태(string)를 넣고
        public float m_weight;	//몸무게라는 상태(float)를 넣고
        public float m_height;	//키라는 상태(height)를 넣고
        public string m_gender;	//성별이라는 상태(string)을 넣었다

        //기능. 멤버 함수 or 멤버 메소드(펑션)

        public void Eat()	//먹는다는 기능 추가
        {
            Console.WriteLine("치킨 좋아!!");
        }

        public void Talk()	//얘기하는 기능 추가
        {
            Console.WriteLine("수다 좋아!!");
        }

        public void Study()	//공부하는 기능 추가
        {
            Console.WriteLine("C# 좋아!!!!");
        }

    }
    
    internal class Program
    {
        static void Main(string[] args)
        {
        	Human h1 = new Human();	//Human이라는 클래스를 가져와서 새로운 Human을 만드는데 이름이 h1

            h1.m_age = 20;
            h1.m_name = "hello";
            h1.m_weight = 100f;
            h1.m_height = 190;
            h1.m_gender = "남성";

            Console.WriteLine("이름:{0}, 나이:{1}, 성별:{2}, 몸무게:{3}, 키:{4}", h1.m_name, h1.m_age, h1.m_gender, h1.m_weight, h1.m_height);

            h1.Eat();
            h1.Talk();
            h1.Study();
        }
    }
}

Human 이라는 클래스를 추가하고, 

해당 클래스에서 Human을 하나 생성해 보았다. 

잘 나왔다!

 

[생성자]

   - 클래스가 new 키워드를 통해서 생성이 될 때 호출이 되는 함수

위 코드블록에서 클래스 부분에 아래와 같이 생성자를 추가할 수 있다. 

        //생성자. 클래스가 new 키워드를 통해서 생성이 될 때 호출되는 함수.
        //생성자는 보통 멤버 변수들 초기화 할 때 쓰임.

        public Human() { } //  기본 생성자

        //생성자도 오버로딩이 가능
        public Human(int _age, string _name, float _weight, float _height, string _gender)          //기본 생성자.
        {
            m_age = _age;
            m_name = _name;
            m_weight = _weight;
            m_height = _height;
            m_gender = _gender;
        }

 

개를 추가하고, 고양이를 추가하는 것도 해보았다. 

내용과 방식은 사실상 거의 똑같아서 생략!

 

[강의 내용]

https://www.notion.so/2023-07-22-728357141a7d40bfb83356eff5bd950c

반응형