1️⃣ Class (클래스)
목적
- 복잡한 객체 표현
- 예: 직원, 상품, 동물 등
구성
- Properties: 상태 저장
- Methods: 동작 정의
class Animal {
var name: String
func makeSound() { }
}
특징
- 인스턴스 생성: let a = Animal()
- initializer (init) 로 초기값 강제 가능
- 상속 가능
- Reference Type (참조 타입)
2️⃣ Initializer (초기화자)
init(name: String) {
self.name = name
}
- 인스턴스 생성 시 모든 프로퍼티 초기화 보장
- self → 프로퍼티 구분용
3️⃣ Subclass (상속)
class Mammal: Animal { let hasFurOrHair = true }
- 부모 클래스: Superclass
- 자식 클래스: Subclass
- 부모의 프로퍼티/메서드 상속
4️⃣ Method Override (메서드 재정의)
override func description() -> String {
super.description() + "..."
}
- override 필수
- super → 부모 구현 호출
5️⃣ Struct (구조체)
목적
- 클래스와 동일한 역할 가능
struct Reptile {
var name: String
}
특징
- 상속 불가
- Value Type (값 타입)
- 자동 memberwise initializer 제공
6️⃣ Class vs Struct 핵심 차이
구분ClassStruct
| 타입 | 참조 타입 | 값 타입 |
| 상속 | 가능 | 불가 |
| 복사 | 참조 공유 | 값 복사 |
| 권장 | 필요 시 | 기본 선택 |
👉 상속 필요 없으면 Struct 권장
7️⃣ Value Type vs Reference Type
Struct (값 타입)
var a = s
var b = a
b.x = 10 // a 영향 없음
Class (참조 타입)
var c = obj
var d = c
d.x = 10 // c도 변경됨
8️⃣ Enum (열거형)
목적
- 제한된 값 집합 표현
enum TrafficLightColor {
case red, yellow, green
}
특징
- 잘못된 값 차단
- 메서드 포함 가능
'Programming Languages > Swift' 카테고리의 다른 글
| Concurrency (0) | 2025.12.26 |
|---|---|
| Protocols / Extensions/ Error Handling (0) | 2025.12.26 |
| Functions (함수) / Closures (0) | 2025.12.26 |
| Swift / C++ Collection Types 비교 (0) | 2025.12.26 |
| Swift vs C/C++ 문법 비교 (0) | 2025.12.19 |