최근에 들었던 생각 중에 하나인 유니티 개발자로 일을 하고 있는데 기초가 많이 부족하다고 느껴지게 되었던 부분들이 있었습니다. 그래서 해당 부분들을 보충하기 위해 "레트로의 유니티 게임 프로그래밍 에센스"라는 책을 구입 후 공부하기 시작했습니
다. 물론 알고 있는 부분도 많이 있지만 복습 역시 필요한 영역이라고 생각이 들어서 책을 공부하는 중입니다.
유니티 C#에서 말하는 클래스란 ?
# 레트로의 유니티 게임 프로그래밍 에센스 p184
우선 책에서는 클래스와 오브젝트를 같이 설명하는 방식으로 진행되었습니다.
객체지향 프로그래밍 - '사람이 현실 세상을 보는 방식'에 가깝게 프로그램을 완성하는 방법의 핵심 개념으로 설명을 해주면서 시작하게 되었습니다.
클래스는 표현하고 싶은 대상을 추상화하여 대상과 관련된 변수와 메서드를 정의하는 틀입니다.
클래스는 프로그램 속에 실제로 존재하는 사물(실체 또는 오브젝트)이 아닙니다. 클래스는 틀입니다.
틀은 물건이 아니지만 틀(클래스)에 쇳물을 부어 실제 물건(오브젝트)을 만들 수 있습니다.
이 부분에서 제가 잘 모르고 있던 클래스에 대한 개념이 팍 잡히는 순간이었습니다.
저는 클래스와 오브젝트의 차이점? 에 대해서는 고민을 해보지 않았었는데 정말 표현을 잘해주신 것 같습니다!
클래스의 멤버와 필드란?
# 레트로의 유니티 게임 프로그래밍 에센스 p195
우선 정의를 먼저 말로 풀어보겠습니다.
클래스의 멤버
어떤 클래스에 속하며, 해당 클래스의 데이터와 행위를 표현하는 요소
클래스의 필드
클래스의 멤버 중에서 변수를 칭함
약간 구분이 잘 안 되고 있는 형식이 있는데 책에서는 예제를 통하여서 훨씬 이해가 잘 되도록 설명하였습니다.
public class Sonsazang {
// 손사장에 대한 변수
public string name;
public int age;
// 손사장이 인사하는 메서드
public void HelloSonsazang() {
Debug.Log("안녕하세요 저는 " + age + "살 " + name + "입니다.");
}
}
위 예제는 제가 임시로 제작한 예제입니다! (손사장 손사장)
Sonsazang 클래스를 기준으로 멤버와 필드를 알아봅시다!
Sonsazang 클래스의 멤버
데이터(변수) -> name, age
행위(메서드) -> HelloSonsazang()
Sonsazang 클래스의 필드(멤버 변수)
변수 -> name, age
이상입니다.
정말 좋은 책인 것 같습니다.
처음 공부할 때 봤었으면 기본기가 더 탄탄한 개발자가 될 수 있었겠지만
지금이라도 공부하면 누구든지 더 탄탄한 개발자가 될 수 있을 것 같습니다!
모두 파이팅입니다!