iOS/Swift
[Swift] 구조체(struct)와 클래스(class)
year.number
2022. 8. 2. 20:44
구조체와 클래스의 사용 목적
- 데이터를 용도에 맞게 묶어서 표현하고자 할 때
- 새로운 사용자 정의 데이터 타입을 만들어 주는 것
구조체 | 클래스 |
값 타입 | 참조 타입 |
인스턴스를 let으로 선언 시 내부 프로퍼티 값 변경X | 인스턴스를 let으로 선언 시 내부 프로퍼티 값 변경O |
상속 불가 | 상속 가능 |
타입 캐스팅 불가 | 타입 캐스팅 가능 |
디이니셜라이저X | 디이니셜라이저O (메모리 소멸) |
기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라이저O | 프로퍼티 기본값을 지정하지 않으면 이니셜라이저 따로 정의 / 사용자 정의 이니셜라이저 호출 |
구조체 예시
// 구조체 정의
struct BasicInformation {
var name: String
var age: Int
}
// 구조체 인스턴스 생성 및 사용
var yeonsuInfo: BasicInformation = BasicInformation(name: "yeonsu", age: 24)
yeonsuInfo.age = 100
yeonsuInfo.name = "Bonny"
클래스 예시
// 클래스 정의
class Diet {
var height: Float = 0.0
var weight: Float = 0.0
}
// 클래스 인스턴스 생성 및 사용
var yeonsu: Diet = Diet()
yeonsu.height = 166.8