C#프로그래밍

클래스 정의[중요]

다모아 2023. 7. 21. 11:46

클래스는 사용자 지정 형식이다.
- 참조형식 : 스택(값이 있는주소), 힙(값)
- null : 아무것도 참조하지 않는 값
string(참조형식)
string name = null;

클래스 정의 : 값이 생겨나지 않음
new 키워드를 사용해야만 값이 생겨남
객체, 개체, 인스턴스 : 클래스의 값 (메모리에 저장되는)
기본값이 null이다

클래스 정의(선언)
객체 단위로 생각해야 한다
------------------------------
클래스 이름
------------------------------
데이터
기능
------------------------------


------------------------------
챔피언
------------------------------
데이터
이름
체력
------------------------------
기능
이동하다
공격하다

클래스 또는 구조체의 instance 를 만들 때마다 해당 생성자가 호출됩니다.

 

new 키워드 : 클래스의 인스턴스를 생성하고 생성자를 호출한다[힙에 저장]
------------------------------

 

Champion 클래스

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

namespace LearnDotnet
{
    class Champion
    {
        //데이터
        string name;

        //생성자 메서드
        public Champion()
        {
            Console.WriteLine("챔피언이 생성되었습니다.");
        }
        //기능 : 춤을 춘다
        public void Dance()
        {
            Console.WriteLine("춤을 춥니다~");
        }
    }
}

 

App 클래스

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

namespace LearnDotnet
{
    internal class App
    {
        //데이터
        Champion champion;

        //생성자
        public App()
        {
            Console.WriteLine("App 생성자 호출됨");

            //챔피언을 생성
            champion = new Champion();
            champion.Dance();
            Console.WriteLine(champion);


        }
        //기능
    }
}

 

3. main 메서드

using System;

namespace LearnDotnet
{
    internal class Program
    { 
        static void Main(string[] args)
        {
            new App(); //new : 인스턴스 호출[값이라 변수에 넣을 수 있음]
        }
    }
}