クラス名最初の一文字目は必ず大文字
// CLASS
// クラス名最初の一文字目は必ず大文字
class User{
let name: String
var age: Int
init(){
self.name = "me"
self.age = 30
}
}
let user = User() //----- クラスのインスタンス化
print(user.name) //----- me
print(user.age) //----- 30
user.age = 25
print(user.age) //----- 25
// イニシャライザの実装(複数実装可能)
class User1{
let name: String
var age: Int
init(_ name: String, _ score: Int){
self.name = name
self.age = score
}
init(){
self.name = "me"
self.age = 30
}
}
let user1 = User1("taro", 24)
print(user1.name) //----- taro
print(user1.age) //----- 24
let user2 = User1()
print(user2.name) //----- me
print(user2.age) //----- 30
// 計算プロパティの実装
class User3{
let name: String
var age: Int
// 計算プロパティ
var generation: Int{
get {
if (self.age % 10) < 5 {
return Int(self.age / 10 * 10)
} else {
return Int(self.age / 10 * 10 + 10)
}
}
set{
if newValue >= 0 {
age = newValue
}
}
}
init(_ name: String, _ age: Int){
self.name = name
self.age = age
}
init(){
self.name = "me"
self.age = 30
}
}
let user3 = User3("morita", 32)
print(user3.generation) //------ 30
user3.generation = 19
print(user3.age) //------ 19
print(user3.generation) //------ 20