과제 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 |