You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
프로퍼티는 클래스, 구조체, 열거형과 연관된 값입니다.
타입과 관련된 값을 저장할 수도, 연산할 수도 있습니다.
프로퍼티의 종류
인스턴스 저장 프로퍼티
타입 저장 프로퍼티
인스턴스 연산 프로퍼티
타입 연산 프로퍼티
지연 저장 프로퍼티
이번 파트에서는 지연 저장 프로퍼티를 제외한 저장 프로퍼티와 연산 프로퍼티에 대해 알아봅니다.
정의와 사용
프로퍼티는 구조체, 클래스, 열거형 내부에 구현할 수 있습니다. 다만 열거형 내부에는 연산 프로퍼티만 구현할 수 있습니다. 연산 프로퍼티는 var로만 선언할 수 있습니다. 연산프로퍼티를 읽기전용으로는 구현할 수 있지만, 쓰기 전용으로는 구현할 수 없습니다. 읽기전용으로 구현하려면 get 블럭만 작성해주면 됩니다. 읽기전용은 get블럭을 생략할 수 있습니다. 읽기, 쓰기 모두 가능하게 하려면 get 블럭과 set블럭을 모두 구현해주면 됩니다.
set 블럭에서 암시적 매개변수 newValue를 사용할 수 있습니다.
ex
var westernAge: Int { //westernAge 는 값저장이 아니라
get {
return koreanAge - 1 // 값을 불러올땐 여기가 실행
}
set(inputValue) { // 여기에 값을 셋팅해주면
koreanAge = inputValue + 1 // koreanAge 프로퍼티에 값을 연산을 해서 할당해주는 거임
}
}
// 즉 값 대입 하면 set부분 정의한데로, 값 뽑을때는 get 정의한데로
이번 파트에서는 지연 저장 프로퍼티를 제외한 저장 프로퍼티와 연산 프로퍼티에 대해 알아봅니다.
15
+
16
+
정의와 사용
17
+
프로퍼티는 구조체, 클래스, 열거형 내부에 구현할 수 있습니다. 다만 열거형 내부에는 연산 프로퍼티만 구현할 수 있습니다. 연산 프로퍼티는 var로만 선언할 수 있습니다. 연산프로퍼티를 읽기전용으로는 구현할 수 있지만, 쓰기 전용으로는 구현할 수 없습니다. 읽기전용으로 구현하려면 get 블럭만 작성해주면 됩니다. 읽기전용은 get블럭을 생략할 수 있습니다. 읽기, 쓰기 모두 가능하게 하려면 get 블럭과 set블럭을 모두 구현해주면 됩니다.
18
+
set 블럭에서 암시적 매개변수 newValue를 사용할 수 있습니다.
19
+
20
+
*/
21
+
22
+
23
+
// 프로퍼티는 클래스, 구조체, 열거형 안쪽에 구현 해줄수 있음
24
+
25
+
structStudent{
26
+
27
+
// 인스턴스 저장 프로퍼티
28
+
varname:String=""
29
+
var`class`:String="Swift"
30
+
varkoreanAge:Int=0
31
+
32
+
// 인스턴스 연산 프로퍼티 : 특정 연산을 수행해주는 프로퍼티임
33
+
// 기존 프로퍼티는 어떤 값을 저장을 하기 위한 프로퍼티였음
34
+
// 연산 프로퍼티는 값들을 연산 해주기 위한 프로퍼티임
35
+
36
+
varwesternAge:Int{ //westernAge 는 값저장이 아니라
37
+
get{
38
+
return koreanAge -1 // 값을 불러올땐 여기가 실행
39
+
}
40
+
41
+
set(inputValue){ // 여기에 값을 셋팅해주면
42
+
koreanAge = inputValue +1 // koreanAge 프로퍼티에 값을 연산을 해서 할당해주는 거임
43
+
}
44
+
}
45
+
46
+
// 즉 값 대입 하면 set부분 정의한데로, 값 뽑을때는 get 정의한데로
47
+
48
+
49
+
// 타입 저장 프로퍼티 (static 요런거 붙는걸 말함)
50
+
staticvartypeDescription:String="학생"
51
+
52
+
/*
53
+
// 인스턴스 메서드
54
+
func selfIntroduce() {
55
+
print("저는 \(self.class)반 \(name)입니다")
56
+
}
57
+
*/
58
+
59
+
// 읽기전용 인스턴스 연산 프로퍼티
60
+
// 간단히 위의 selfIntroduce() 메서드(메개변수, 반환값 없는)를 대체할 수 있습니다
0 commit comments