:SERVER/C#(C Sharp)
클래스, 생성자, static
orora
2022. 9. 16. 14:24
반응형
using System;
namespace CSharp {
// 객체 지향 OOP; Object Oriented Programming
class Knight {
// 필드. 필드는 인스턴스마다 제각각인 값을 가진다.
static public int counter; // Knight 인스턴스 모두 공유. 오로지 하나만 존재.
public int id;
public int hp;
public int attack;
public void test() { } // 인스턴스에 종속됨
static public void test2() { // 클레스에 종속됨
// 정적 속성, 정적 메소드에서는 this키워드 사용 금지
// 정적 속성에만 접근 가능.
}
static public Knight CreateKnight() {
Knight knight = new Knight();
knight.hp = 100;
knight.attack = 1;;
return knight;
}
// 생성자
public Knight() {
hp=100;
attack=10;
}
public Knight(int hp) : this() {
this.hp = hp;
this.attack = 10;
}
public Knight(int hp, int attack){
this.hp = hp;
this.attack = attack;
}
public Knight Clone() {
Knight knight = new Knight();
knight.hp = this.hp;
knight.attack = this.attack;
return knight;
}
public void Move() {
System.Console.WriteLine("Knight Move");
}
public void Attack() {
System.Console.WriteLine("Knight Attack");
}
}
class Program{
// Main 함수
static void Main(string[] args) {
Knight knight = new Knight();
knight.hp = 100;
knight.attack = 10;
knight.Move();
knight.Attack();
knight.test(); // 함수 - 인스턴스에서 호출
Knight.test2(); // static 함수 - 클래스에서 호출
}
}
}
반응형