/**
함수 복습
*/
func addTwoNumbers(_ a: Int, _ b: Int) -> Int {
var c = a + b
return c
}
var x = addTwoNumbers(3, 4)
var y = addTwoNumbers(5, 6)
/**
클래스 복습
*/
class Dog {
var name: String
var weight: Int
init(name: String, weight: Int){
self.name = name
self.weight = weight
}
func sit(){
print("\(name), 앉아!!")
}
func layDown() {
print("\(name), 누워!!")
}
}
/**
계산속성(Computed Properties)
- 다른 저장 속성에 의한 결과로 계산해 나오는 방식의 메서드인 경우
- 아예 속성처럼 만들 수 있다.( ---> 계산 속성)
*/
class Person {
var birth: Int = 0
// 계산 속성
var age: Int {
get {
return 2023 - birth
}
// set 은 구현 해도되고 안해도 됌.
// set(age) {
// self.birth = 2023 - age
// }
// newValue == parameter
set {
self.birth = 2023 - newValue
}
}
// get 블럭만 있는 속성
var age1: Int {
return 2023 - birth
}
// func getAge() -> Int {
// return 2023 - birth
// }
// func setAge(_ age: Int) {
// self.birth = 2023 - age
// }
}
var p1 = Person()
p1.birth = 1997
// get
p1.age
p1.birth
// set
p1.age = 20
// get
p1.age
p1.birth
class Person1 {
var name: String = "사람"
var height: Double = 160.0
var weight: Double = 60.0
// 계산속성
var bmi: Double {
get { // getter
let bmi = weight / (height * height) * 10000
return bmi
}
set { // setter
weight = newValue * height * height / 10000
}
// set(bmi) {
// weight = bmi * height * height / 10000
// }
}
// calculateBMI() -> Double {
// let bmi = weight / (height * height) * 10000
// return bmi
// }
}
let p2 = Person1()
p2.height = 175
p2.weight = 76
p2.bmi
p2.bmi = 24
p2.weight