과제

Day14 - Class 1,2,3단계

qltjfeo55555 2024. 12. 9. 23:21

과제 1) 클래스 생성 실습

  • 새로운 cs파일을 하나 생성 합니다. 그 속에 Car라는 클래스를 만든 후,
    • 필드로 문자열 차이름,
    • 정수형 자동차 넘버,
    • 정수형 자동차 체력
internal class Car
{
    //다른 class에서 참조하기 위해 public를 썼음
    public string CarName;
    public int CarNumber;
    public int CarHp;
}

과제 2) 클래스 생성 실습

  • 새로 cs파일을 생성 후에 Monster라는 클래스를 만든 후,
    • 필드로 정수형 공력력,
    • 정수형 HP를 가지고 있게 합니다.
    • 필드로 위치와 관련된 구조체를 하나 들고 있게 합니다.
      • 구조체 설계도 이름은 Vector2, 속에는 int x, int y 두 개가 있습니다
    • 해당 필드를 외부에서 접근할 수 있도록 프로퍼티를 각각 만들되, 공격력, HP에 음수를 세팅할 경우, 콘솔에 음수로 세팅 할 수 없다고 출력하며 대신 해당 필드를 0으로 만들도록 만들어 주세요
    • 몬스터 속에 AttackCar 라는 void형 함수를 하나 만들고, 인자값으로 Car형을 받습니다. 해당 함수가 실행될 경우, 몬스터가 가진 공격력으로, Car 객체의 체력을 깎는 코드를 작성하시길 바랍니다. 이후, “{공격력} 만큼의 데미지를 {차이름} 에 주었습니다” 도 출력합니다.

 

 

 

struct Vector2
{
    int x;
    int y;
}
internal class Monster
{
    int MonsterPower;
    int MonsterHp;
   
    public int MonsterPowerPro
    {
        get
        {
            return MonsterPower;
        }
        set
        {
            if(value < 0)
            {
                value = 0;
                Console.WriteLine("음수로 세팅 할 수없다고");
            }
            MonsterPower = value;
        }
        
    }

    public int MonsterHpPro
    {
        get
        {
            return MonsterHp;
        }
        set
        {
            if (value < 0)
            {
                value = 0;
                Console.WriteLine("음수로 세팅 할 수없다고");
            }
            MonsterHp = value;
        }
    }

    public void AttackCar(Car car)
    {
        car.CarHp = car.CarHp - MonsterPower;
        Console.WriteLine("{0}만큼의 데미지를 {1}에 주었습니다", MonsterPower,car.CarName);

    }
 

}

 

MonsterHp, MonsterPower을 다른 class에서 쉽게 참조 하기 힘들게 프로퍼티 사용했다.

 

과제 3) 테스트

  • 메인으로 와서 Car 객체와(1번에서 만들었던), Monster(2번에서 만든) 객체를 하나 만듭니다.
  • 위의 몬스터를 전부 만들었으면 메인에서 몬스터 객체를 하나 만들고 공격력에는 20을 세팅해준 후 만들어진 자동차와 함께 Attack함수를 호출해보자
  • 자동차의 체력도 출력해서 깎였는지 확인해보세요
 static void Main(string[] args)
 {   
     Monster monster = new Monster();
     Car car = new Car();
     monster.MonsterPower = 20;
     monster.AttackCar(car);
     Console.WriteLine("자동차의 체력은" + car.CarHp);
 }

 

결과값

 

 

https://record5555.tistory.com/20

 

Day14 - Class 심화

https://record5555.tistory.com/19 Day14 - Class 1,2,3단계과제 1) 클래스 생성 실습새로운 cs파일을 하나 생성 합니다. 그 속에 Car라는 클래스를 만든 후,필드로 문자열 차이름,정수형 자동차 넘버,정수형 자

record5555.tistory.com

 

'과제' 카테고리의 다른 글

Day15 - 오버로딩 1,2,3단계  (0) 2024.12.10
Day14 - Class 심화  (2) 2024.12.09
콘솔 섯다 만들기(C#) 12/3~12/5  (1) 2024.12.05
Day8 - 함수, 피보나치 수열  (0) 2024.11.29
Day4 - 연산  (1) 2024.11.29