클래스는 사용자 지정 형식이다.
- 참조형식 : 스택(값이 있는주소), 힙(값)
- 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 : 인스턴스 호출[값이라 변수에 넣을 수 있음]
}
}
}
'C#프로그래밍' 카테고리의 다른 글
this , 매개변수 있는 메서드, 매개변수도 있고 반환값도 있는 메서드, 반환값만 있는 메서드, 메서드의 종류 (0) | 2023.07.21 |
---|---|
스타크래프트 유닛, 건물 (0) | 2023.07.21 |
메서드 (0) | 2023.07.21 |
static (0) | 2023.07.21 |
break (0) | 2023.07.21 |