Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- MonoBehaviour
- vector
- 힙영역
- 스택
- 공부
- 인프런
- 트리
- 프래그멘테이션
- 객체지향
- std::unordered_map
- 알고리즘
- Queue
- list
- 큐
- map
- std::map
- thread
- 스택영역
- static_cast
- 리스트
- 차이점
- 해쉬맵
- 멀티쓰레드
- rookiss
- 자료구조
- 기술면접
- 벡터
- 배열
- 반복문
- c#
Archives
- Today
- Total
호빵의 IT 개발소
[C#] static 본문
public int는 각 인스턴스마다 값이 달라질 수 있다.
static public int는 class에 종속적인 필드가 된다. 즉 오로지 1개만 존재하게 된다.
knight 3개를 만들어 1번은 기존 hp 설정했던 100이 설정되고 2번은 knight2.hp를 사용하여 80을 부여하고 3번도 knight3.hp = 60;으로 설정하였습니다. 만약 static public int hp = 100;으로 선언하였다면 각각 다른 hp를 부여하지 못하고 모든 knight들은 hp가 100으로 설정되게 됩니다.
static public int counter를 1개로 고정 한 뒤 public int id를 활용하여 id가 한개 생성될때마다 counter 1개를 더해주어 id 변수를 늘릴 수 있도록 사용하였습니다.
class Knight
{
//필드
static public int counter = 1; //오로지 1개만 존재!
public int id;
public int hp;
public int attack;
public Knight()
{
id = counter;
counter++;
hp = 100;
attack = 10;
Console.WriteLine("생성자 호출");
}
}
class Program
{
static void Main(string[] args)
{
Knight knight = new Knight();
Knight knight2 = new Knight();
knight2.hp = 80;
Knight knight3 = new Knight();
knight3.hp = 60;
}
}
※한줄 요약 : static 즉 정적이라는 키워드를 붙이면 class에 종속적인 필드 또는 함수가 되는 것이고 static을 뺀 상태는 인스턴스에 종속적인 필드 또는 함수가 된다.
---------------------------------------------------------------------------------------------------------------------------
참고 : [인프런] Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
'C#, 유니티 > C# 기초' 카테고리의 다른 글
| [C#] 은닉성 (0) | 2022.01.03 |
|---|---|
| [C#] 상속성 (0) | 2022.01.03 |
| [C#] 스택과 힙 (0) | 2022.01.02 |
| [C#] 복사와 참조 (0) | 2022.01.02 |
| [C#] 객체지향 기본 (0) | 2022.01.02 |
Comments