[Swift] (기초) Class / 클래스
2021. 7. 16. 22:05ㆍ🍏/Swift 기초 공부
클래스
struct와 유사하지만 참조타입이며 다중상속 불가능
import Swift
//MARK: - 정의
//class 이름{
//
//}
// 참조타입
// 다중상속 불가능
class Sample {
var mutableProperty: Int = 100 // 가변 프로퍼티
let immutableProperty: Int = 100 // 불편 프로퍼티
static var typeProperty: Int = 100 // 타입 프로퍼티
// 인스턴스 메서드
func instanceMethod() {
print("instace method")
}
// 타입 메서드
// 재정의 불가 타입 메서드 - static
static func typeMethod(){
print("type method - static")
}
// 재정의 가능 타입 메서드 - class
class func classMethod() {
print("type method - class")
}
}
//MARK: 클래스 사용
// 가변 인스턴스
var mutable: Sample = Sample()
mutable.mutableProperty = 200
/* mutable.immutableProperty = 200 */ //불변 프로터티는 값을 변경할 수 없다.
// 불변 인스턴스
let immutable: Sample = Sample()
immutable.mutableProperty = 200
/*immutable.immutableProperty = 200 */ //불변 인스턴스도 가변 프로퍼티는 값 변경 가능하다.
// 타입 프로퍼티 및 메서드
Sample.typeProperty = 300
Sample.typeMethod() // type method
/* mutable.typeProperty = 400
mutable.typeMethod() */ // 타입프로퍼티 & 타입 메서드 사용 불가능
//MARK: - 학생 클래스
class Student {
var name: String = "unknown"
var `class`: String = "Swift"
static func selfIntroduce(){
print("학생 타입 입니다.")
}
func selfIntroduce(){
print("저는 \(self.class)반 \(name)입니다 ")
}
}
Student.selfIntroduce() // 학생 타입입니다.
var chan: Student = Student()
chan.name = "chan"
chan.class = "스위프트"
chan.selfIntroduce() //저는 스위프트반 찬입니다.
let kanna: Student = Student()
// 불변 인스턴스도 가변 프로퍼티값을 변경 가능
kanna.name = "kanna"
kanna.selfIntroduce() //저는 swift반 kanna입니다
'🍏 > Swift 기초 공부' 카테고리의 다른 글
[Swift] (기초) Value Type(값 타입) / Reference Type(참조 타입) (0) | 2021.08.24 |
---|---|
[Swift] (기초) Enum / 열거형 (0) | 2021.07.16 |
[Swift] (기초) Sturct / 구조체 (0) | 2021.07.16 |
[Swift] (기초) Optional Unrapping / 옵셔널 언래핑 (0) | 2021.07.16 |
[Swift] (기초) Optional / 옵셔널 (0) | 2021.07.13 |