클래스
- 클래스는 구조체와 유사함
- 구조체는 값 타입, 클래스는 참조 타입
- Swift의 클래스는 다중 상속이 안됨
프로퍼티 및 메서드
class Sample {
var mutableProperty: Int = 100 // 가변 프로퍼티
let immutableProperty: Int = 100 // 불변 프로퍼티
static var typeProperty: Int = 100 // 타입 프로퍼티
// 인스턴스 메서드
func instanceMethod() {
print("instance method")
}
타입 메서드
* 재정의 불가 타입 메서드 - static
static func typemethod() {
print("type method - static")
}
* 재정의 가능 타입 메서드 - class
class func classMethod() {
print("type method - class")
}
클래스 사용
var mutableReference: Sample = Sample()
mutableReference.mutableProperty = 200
let immutableReference: Sample = Sample()
immutableReference.mutableProperty = 200
import Foundation
struct Student {
var name: String = "unknown"
var 'class' = String = "Swift"
// 타입 메서드
static func selfIntroduce() {
print("학생 타입 입니다")
}
// 인스턴스 메서드
func selfIntroduce() {
print("저는 \(self.class)반 \(name)입니다")
}
}
Student.selfIntroduce() // 학생 타입 입니다
var khon: Student = Student()
khon.name = "khon"
khon.class = "스위프트"
khon.selfIntroduce() // 저는 스위프트반 khon입니다
let khon3: Student = Student()
khon3.name = "khon3"
khon3.selfIntroduce() // 저는 Swift반 unknown입니다
'Swift > 문법' 카테고리의 다른 글
값 타입과 참조 타입(value type / reference type) (0) | 2021.01.27 |
---|---|
열거형(enum) (0) | 2021.01.27 |
구조체 (0) | 2021.01.27 |
옵셔널 추출(Optional Unwrapping) (0) | 2021.01.27 |
옵셔널(Optional) (0) | 2021.01.27 |