1. property, get-set메서드
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Hero
{
private string name;
private int damage;
private int maxHp;
private int hp;
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
public int Damage
{
get
{
return this.damage;
}
set
{
this.damage = value;
}
}
public int Hp
{
get
{
return this.hp;
}
}
public int MaxHp
{
get
{
return this.maxHp;
}
set
{
this.maxHp = value;
this.hp = this.maxHp;
}
}
// 생성자
public Hero()
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class App
{
// 생성자
public App()
{
Hero hero = new Hero();
hero.Name = "홍길동";
hero.Damage = 1;
hero.MaxHp = 10;
Console.WriteLine(hero.Name);
Console.WriteLine(hero.Damage);
Console.WriteLine("{0}/{1}", hero.Hp, hero.MaxHp);
}
}
}
2. interface 상속
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
interface IBurrow
{
void Burrow();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
interface IRecovery
{
void RecoverHp(); // 체력 회복
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Drone : IBurrow, IRecovery
{
// 생성자
public Drone()
{
}
// 자동 생성
public void Burrow()
{
Console.WriteLine("Brrow!");
}
public void RecoverHp()
{
Console.WriteLine("체력 회복");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Zergling : IBurrow, IRecovery
{
// 생성자
public Zergling()
{
}
public void Burrow()
{
Console.WriteLine("Burrow");
}
public void RecoverHp()
{
Console.WriteLine("체력 회복");
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class App
{
// 생성자
public App()
{
Drone drone = new Drone();
drone.Burrow();
drone.RecoverHp();
Zergling zergling = new Zergling();
zergling.Burrow();
// 타입으로 사용
IBurrow drone2 = new Drone();
drone2.Burrow();
// drone2.RecoverHp(); -> 캐스팅 오류
// 해결방법
IRecovery drone3 = (IRecovery)drone2;
drone3.RecoverHp();
((IRecovery)drone2).RecoverHp();
IBurrow zergling2 = new Zergling();
zergling2.Burrow();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
interface IAttack
{
void Attack();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
interface ICloak
{
void CloakOn();
void CloakOff();
bool IsCloak();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Marine : IAttack
{
// 생성자
public Marine()
{
}
public void Attack()
{
Console.WriteLine("총을 쏩니다.");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Firebat : IAttack
{
//생성자
public Firebat()
{
}
public void Attack()
{
Console.WriteLine("화염방사기를 쏩니다.");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class Wraith : ICloak
{
private bool isCloak;
// 생성자
public Wraith()
{
}
public void CloakOff()
{
this.isCloak = false;
}
public void CloakOn()
{
this.isCloak = false;
}
public bool IsCloak()
{
return this.isCloak;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class App
{
// 생성자
public App()
{
// 인터페이스 IAttack
Marine marine = new Marine();
Firebat firebat = new Firebat();
marine.Attack(); //총을 쏩니다
firebat.Attack(); // 화염방사기를 쏩니다
// 인터페이스 ICloak
ICloak wraith = new Wraith();
wraith.CloakOn();
wraith.CloakOff(); // false
bool isCloak = wraith.IsCloak();
if (isCloak)
{
Console.WriteLine("은신중입니다.");
}
else
{
Console.WriteLine("은신중이지 않습니다."); // 출력
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
public class App
{
// 정수 배열 타입 변수 정의
int[] arr1;
// 문자열 배열 타입 변수 정의
string[] arr2;
// Hero배열 형식의 변수 정의
Hero[] arr3;
// 생성자
public App()
{
// 정수 인스턴스 생성하고 arr3에 할당, 해당 요소는 기본값 0
this.arr1 = new int[2];
this.arr1[0] = 1;
// 문자열 인스턴스 생성하고 arr3에 할당
this.arr2 = new string[3];
// Hero 인스턴스 생성하고 arr3에 할당
this.arr3 = new Hero[3];
// 두개 같음
int[] array2 = new int[] { 1, 2, 3, 4, 5 };
int[] array3 = { 1, 2, 3, 4, 5 };
int[] score = new int[5];
//score[-1] = 0; // 인덱스 배열 범위 오류
score[0] = 80;
score[1] = 74;
score[2] = 81;
score[3] = 90;
score[4] = 34;
//score[5] = 79; // 인덱스 배열 범위 오류
//Console.WriteLine(score.Length); // 5
//// 반복문 이용하여 출력
//for (int i = 0; i < score.Length; i++)
//{
// Console.WriteLine(score[i]);
//}
foreach (int num in score)
{
Console.WriteLine(num);
}
string[] fruitsNames = new string[3];
fruitsNames[0] = "바나나";
//fruitsNames[1] = "딸기";
fruitsNames[2] = "수박";
for (int i = 0; i < fruitsNames.Length; i++)
{
if (i == 1)
{
fruitsNames[i] = "복숭아";
}
}
foreach(string name in fruitsNames)
{
Console.WriteLine(name);
}
}
}
}