클래스
- 저장 위치: 힙에 저장
- 타입: 참조 타입 (Reference Type)
- 상속: 가능
- 기본 생성자: 기본 생성자를 가질 수 있음
- null: 가능
- 사용 : 큰 데이터 또는 참조를 필요로 하는 객체, 상속이 필요한 경우, 라이프타임 동안 변경될 수 있는 객체 등에 사용
구조체
- 저장 위치: 스택에 저장
- 타입: 값 타입 (Value type)
- 상속: 불가능
- 기본 생성자: 기본 생성자를 가질 수 없음
- null: 불가능 (Nullable를 사용하여 null 가능한 구조체를 만들 수는 있음)
- 사용 : 작은 데이터 묶음, 간단한 값 객체, 불변성(immutability)이 필요한 경우 등에 사용
사용
1. 클래스 사용 시나리오:
- 객체의 라이프타임 동안 상태가 변경될 가능성이 있는 경우
- 상속이나 다형성이 필요한 경우
- 큰 데이터 세트나 복잡한 객체 모델을 다루는 경우
2. 구조체 사용 시나리오:
- 작은 데이터 묶음을 표현하고 싶은 경우 (2D 좌표, 복소수 등)
- 불변성을 원하는 경우
- 값 자체가 중요하고, 그 값의 실제 메모리 위치보다 중요한 경우 (참조가 아닌 값 복사를 원하는 경우)
'👾 내일배움캠프 > 🎮 TIL & WIL' 카테고리의 다른 글
내일배움캠프 60일차 TIL - 플레이어와 주방기구 상호작용 (1) | 2023.11.08 |
---|---|
내일배움캠프 55일차 TIL - InputSystem과 가상 조이스틱 (On-Screen Button / On-Screen Stick) (0) | 2023.10.31 |
내일배움캠프 53일차 TIL - 접근제한자에 대한 이해 (0) | 2023.10.26 |
내일배움캠프 52일차 TIL - ref와 out 한정자 (1) | 2023.10.25 |
내일배움캠프 51일차 TIL - Float과 Int (0) | 2023.10.24 |