inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

static의 정체

static 메서드 또는 변수에 접근

315

KYH

작성한 질문수 3

0

Main 메서드에 knight = Knight.CreateKnight( )로 접근이 가능한 이유가 CreateKnight( ) 메서드가 Compiler에 의해서 프로그램이 실행될 때 static으로 선언되어 있으니깐 Data 메모리 영역에 할당되어 사용자가 Knight에 대한 클래스를 객체화 시키지 않고 knight = Knight.CreateKnight( ) 바로 접근이 가능하다?

하지만 knight.Move( ) 메서드는 static을 사용하지 않고 Knight에 종속된 메서드로  Knight를 객체화 시켜야만 Knight 필드 메서드와 필드 변수를 Heap 메모리 영역에 할당이 되어 knight.Move( )에 접근이 가능하다?

라는 해석으로 제가 생각 했는데 이 해석이 맞는 건가요? 너무 복잡하게 생각하고 있는거 같습니다..

C#

답변 1

1

Rookiss

Main 메서드에 knight = Knight.CreateKnight( )로 접근이 가능한 이유가 CreateKnight( ) 메서드가 Compiler에 의해서 프로그램이 실행될 때 static으로 선언되어 있으니깐 Data 메모리 영역에 할당되어 사용자가 Knight에 대한 클래스를 객체화 시키지 않고 knight = Knight.CreateKnight( ) 바로 접근이 가능하다?

Knight.CreateKnight()을 한다고 객체화시키지 않는 것이 아니라,
CreateKnight 내부에서 new Knight을 해서 객체화를 해주고 있습니다.
새로 생성된 객체는 당연히 Heap에 올라가겠죠.

Generic에 대한 질문 있습니다.

0

116

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

229

2

다형성 캐시 문제

0

138

3

.

0

78

1

프로퍼티 강의 질문 있습니다.

0

86

1

이후 커리 질문

0

92

1

static

0

104

2

강의에는 새로운 클래스 파일을 생성하면...

0

86

1

생성자의 이름 선언

0

72

1

9:03 Divide(10 , 3) 부분 질문입니다

0

96

1

깃허브 관련 질문 있습니다.

0

252

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

261

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

314

2

Activator 질문있습니다

0

345

1

이넘 타임 선언 질문

0

361

1

Sort 오름차순, 내림차순

0

334

1

질문 있습니다.

0

256

1

팩토리얼 문제

0

279

1

Sort함수 질문있습니다.

0

274

1

다형성 함수 질문 있습니다.

0

231

1

질문이 있습니다.

0

236

1

섹션2 연습문제 질문입니다.

0

224

1

안녕하세요~서버에 대해 질문이 있습니다.

1

290

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

402

1