Notice
Recent Posts
Recent Comments
Link
스토리지
[3.11] Class 생성 및 객체 생성 본문
클래스는 간단하게 설계서이다.
공장에서 물품을 만들려고 하면 설계서를 바탕으로 물품을 찍어낸다.
모든 설계서는 아래와 같은 형식을 따른다.
public class 클래스이름
{
멤버변수 선언공간
생성자
멤버함수
}
아래는 배럭이라는 공장에서 마린(객체)이라는 찍어내기 위해 있는 설계서이다.
public class Marine
{
//멤버변수
private int xPos;
private int yPos;
private int hp;
private int attack;
private const int sight = 5;
//생성자
public Marine()
{
hp = 50;
attack = 5;
Console.WriteLine("마린이 생성되었습니다.");
Console.WriteLine("체력 : {0}, 공격력 : {1}", hp, attack);
}
//외부에 공개된(public) 멤버함수
public void Damaged(int damage)
{
hp -= damage;
Console.WriteLine("{0}만큼의 데미지를 입음, 남은 체력 : {1}", damage, hp);
}
public void AttackEnemy(int eXPos, int eYPos)
{
int distance = (int)(Math.Sqrt(Math.Pow(eXPos - xPos, 2) + Math.Pow(eYPos - yPos, 2)));
if(distance <= sight)
{
Console.WriteLine("마린이 적을 {0}만큼 공격하기 시작함.", attack);
}
}
public void SetPos(int x, int y)
{
xPos = x;
yPos = y;
}
}
이 공장에서 만들어지는 마린은 모두 이러한 기능과 정보를 담고 만들어진다.
공장에서 만들어진 마린을 전장에 투입시키고 싶으면 다음과 같은 코드로 투입시킨다.
class Program
{
static void Main(string[] args)
{
Marine m = new Marine();
}
}
마린 한마리(객체)가 Main이라는 전장(메모리)에 투입되었다.
이 마린이 전장에 투입되었을 때, 객체는 클래스에 있는 '생성자'라는 함수를 실행한다.
*생성자
생성자는 객체가 메모리에 탑재되었을 때, 무조건 실행되는 함수이다.
생성자의 역할은 대개 멤버변수 초기화 및 객체가 메모리에 할당되자마자 어떤 기능을 수행할 때 사용된다.
생략이 가능하다. 오버라이딩이 가능하다. (함수를 여러개 만들 수 있다. 매개변수 달라야함)
Syntax : public 클래스이름(매개변수){ } //public이 아니면 외부에서 접근자체가 불가능하다.
//생성자
public Marine()
{
hp = 50;
attack = 5;
Console.WriteLine("마린이 생성되었습니다.");
Console.WriteLine("체력 : {0}, 공격력 : {1}", hp, attack);
}
이 생성자는 마린이 전장에 투입되었을 때, 가장 먼저 해야할 일을 정의해놓았다.
체력을 지정, 공격력을 지정 후 메세지를 출력한다.
class Program
{
static void Main(string[] args)
{
Marine m = new Marine();
}
}
이제 이 것을 실행하면 m이라는 이름을 가진 마린 하나가 전장에 떨어졌다.
생성자가 정상적으로 실행되었다.
'Unity > 수업내용(C#)' 카테고리의 다른 글
[3.12] Call by Value & Call by Reference (0) | 2021.03.12 |
---|---|
[3.11] C# 클래스 선언 및 인스턴스 생성 예제 (0) | 2021.03.11 |
[3.10] 메소드 연습 2 - 반환값만 있는 메소드 (0) | 2021.03.10 |
[3.10] 메소드 연습 1 - 방향판별 (0) | 2021.03.10 |
[3.10] 메소드 Method (0) | 2021.03.10 |
Comments