[ 개요 ]
https://blackwolfdev.tistory.com/30
위의 객체지향 프로그래밍 설명에서 클래스 부분을 참고하면 된다
[ 구현 방법 ]
클래스를 구현하려면 멤버 변수와 멤버 메서드가 필요하다.
무엇을 멤버 변수로 하고 무엇을 멤버 메서드로 하면 좋을까?
내가 게임 캐릭터를 구현한다고 가정하자
전사, 마법사 등 다양한 직업들이 있을 텐데 이들의 모체가 될 클래스를 구현하려면
게임 캐릭터가 공통적으로 가지고 있을 속성과 기능을 생각하면 된다.
속성으로는 이름, 체력, 공격력 등이 있고
기능으로는 서있기, 공격하기, 대화하기 등이 있을 것이다.
속성은 클래스의 멤버 변수가 되고
기능은 클래스의 멤버 메서드가 된다.
class 클래스명
{
자료형 변수명1;
자료형 변수명2;
반환형 메서드명1()
{
//메서드 기능
}
반환형 함수명2()
{
//메서드 기능
}
}
구현은 위와 같은데 앞서 배운 구조체와 흡사하다.
구조체에 멤버 메서드(함수)를 추가했다고 이해하면 쉽다.
클래스 키워드를 사용하고 클래스명을 적어준다.
그리고 사용하고 싶은 멤버 변수와 메서드들을 선언해 주면 된다.
class GameCharacter
{
public string Name; //이름
public float Hp; //체력
public int AttackPower; //공격력
public void Idle(){
//서있는 동작 코드
}
public int Attack(){
//공격하는 코드
return AttackPower;
}
public void Talk(GameCharacter character){
//대화하는 코드
}
}
예시로 게임 캐릭터를 클래스로 만들어봤다.
멤버 변수로는 캐릭터의 이름, 체력, 공격력을 선언했고
멤버 메서드로는 서있기, 공격하기, 대화하기를 선언했다.
public은 나중에 다룰 예정이라 지금은 넘어가도록 하자.
[ 사용법 ]
클래스명 인스턴스명 = new 클래스명();
인스턴스명.멤버변수 = 값;
인스턴스명.멤버메서드();
먼저 인스턴스를 생성한다.
인스턴스는 클래스명을 자료형으로 사용하며 new라는 키워드로 생성할 수 있다.
new 키워드는 다음 챕터에서 설명하도록 하겠다.
멤버 변수와 멤버 메서드는 인스턴스명에 점(.)을 이용해서 사용할 수 있다.
class ProgramClass
{
public static void Main()
{
GameCharacter warrior = new GameCharacter();
warrior.Name = "WarriorMan";
warrior.Hp = 100f;
warrior.AttackPower = 10;
GameCharacter wizard = new GameCharacter();
wizard.Name = "WizardWoman";
wizard.Hp = 80f;
wizard.AttackPower = 12;
warrior.Talk(wizard);//전사의 멤버메서드 Talk()에 wizard를 인자로 넣어줌
}
}
하나의 클래스로 전사(warrior)과 마법사(wizard) 인스턴스를 생성했다.
그리고 각각 이름, 체력, 공격력의 값을 입력해 준다.
마지막으로 전사 인스턴스의 Talk() 메서드에 wizrad 인스턴스를 인자로 넣어서 사용하였다.
'C#문법' 카테고리의 다른 글
[C#문법] Part14 new 연산자 (7) | 2024.10.09 |
---|---|
[C#문법] Part13 생성자(Constructor)와 소멸자(Destructor) (4) | 2024.10.09 |
[C#문법] 객체지향(Object Oriented Programming)이란 (2) | 2024.10.04 |
[C#문법] Part11 구조체(struct) (0) | 2024.10.04 |
[C#문법] Part10 지역변수와 전역변수(Local variable, Grobal variable) (0) | 2023.03.15 |