게임프로그래밍/MMORPG 게임 개발(C#, 유니티)

[MMORPG 게임 개발(C#, Unity)] Part 1. 객체 지향

shine94 2025. 4. 10. 23:06

* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다

   https://www.inflearn.com/roadmaps/355#introduce

 

MMORPG 게임 개발, 켠김에 끝판왕까지! (유니티 + C#) 로드맵 - 인프런

C#, Unity 스킬을 학습할 수 있는 게임 개발 로드맵을 인프런에서 만나보세요.

www.inflearn.com

 

 

 

 

* 절차적 프로그래밍(Procedural Programming)

   함수를 이용한 프로그래밍 패러다임

 

* 객체 지향 프로그래밍(Object-Oriented Programming, OOP)

   프로그램을 수많은 객체라는 기본 단위로 나누고 이들의 상호 작용으로 서술하는 방식

   속성 + 기능

   은닉성, 상속성, 다양성

 

* Java는 new를 객체 생성 용도로만 사용하고, C#은 new를 객체 생성뿐만 아니라, 값 타입의 초기화에도 사용할 수 있다

 

* C#에서 struct는 메서드 내부에 선언되면 스택에 저장되며, class는 new 키워드를 통해 힙에 저장된다.

 

* this()

   생성자 내에서 자신의 다른 생성자를 호출할 때 사용

 

* base()

   생성자 내에서 자신의 부모 생성자를 호출할때 사용

 

* static

   생명주기나 범위(scope)가 고정되며, 프로그램 흐름과 무관하게 공유되는 요소

   객체 없이 존재하며, 프로그램 전체에서 한 번만 할당한다

 

   (1) 전역 static

      - 파일 내에서 유일

 

   (2) 함수/메서드 static

      - 함수/메서드 내에서 유일

      - 호출 횟수와 무관하게 값 유지됨

 

   (3) 클래스 static

      - 클래스 내에서 유일

      - 모든 인스턴스에서 공유

 

* 클래스 형식 변환

   - 업캐스팅 (Upcasting)
      자식 클래스 → 부모 클래스로 변환
      암시적 변환 (자동으로 가능), 안전함

   - 다운캐스팅 (Downcasting)
      부모 클래스 → 자식 클래스로 변환  
      명시적 캐스팅 필요, 런타임 오류 가능성 있음

 

   - is, as 키워드

      다운 캐스팅을 안전하게 하기 위한 도구

      ㄴ is 키워드 : 이 객체가 이 타입이야? bool 반환

      ㄴ as 키워드 :  이 타입으로 바꿔보고 안 되면 null 줘

 

* 오버로딩 (Overloading), 오버라이딩 (Overriding)

   https://shine94.tistory.com/422

 

dd

* 오버로딩 (Overloading)   같은 이름, 다른 매개변수로 메서드를 여러 개 정의 (컴파일 타임 다형성)* 오버라이딩 (Overriding)  부모로부터 상속받은 메서드의 동작을 자식 클래스에서 재정의 (런

shine94.tistory.com

 

* ToLower(), ToUpper(), Split(), Substring()