C# - Static

static으로 선언된 필드는 여러 객체를 생성해도 오로지 한개만 존재. 정말로 한 클래스안에 한개만 존재하는 필드를 만들 때는 유용하게 사용됨. 필드만 넣는것이 아니고 함수에도 사용할 수 있으나 개념상 똑같다.

필드는 클래스변수와 인스턴스의 변수를 나누는 것이 의미는 있겠지만 함수 자체는 애초에 종속적이든 아니든 딱히 함수를 바꿀 수 없지 않은가. -> static 함수 내부에서는 static 으로 선언되지 않은 필드를 건드릴 수 없다. static으로 선언된 함수는 클래스에 종속되는 함수이므로 static 으로 선언되지 않은 인스턴스 변수에 접근하지 못하는 것이 당연하다. 같은 클래스의 객체간에 이용할 수 있는 공용함수. 공용함수가 각각 개개인의 정보에 접근한다는 것이 논리적으로 말이 안됨. static 함수 내에서는 static 변수에만 접근이 가능하다.

그렇다고해서 일반 인스턴스에 접근 불가능한 것이 아니다.

static public Knight CreatKnight() { Knight knight = new Kngiht(); knight.hp = 100; knight.attack = 1; return knight; } 이런식으로 static 필드가 아닌 hp, attack 에도 접근하는 방법이 있을 수 있다.

태그:

업데이트:

댓글남기기