[Swift]Designated InitilaizerとConvenience Initializer
//Designated Initilaizer - 通常呼ばれるイニシャライザ
//Convenience Initializer - 通常とは別の補助的イニシャライザ
class Person{
var name : String
var age : Int
var sex : Int// 0 - male , 1 - female
//Designated Initilaizer
init(name : String, age : Int , sex : Int){
self.name = name
self.age = age
self.sex = sex
}
//Convenience Initializer
convenience init(name : String, age : Int , sex : String){
var sex_int : Int
switch sex{
case "female" , "woman":
sex_int = 1
default:
sex_int = 0
}
self.init(name : name , age : age , sex : sex_int)
}
func sex_string() -> String{
let sexStr:String
if self.sex == 0 {
sexStr = "男"
}else{
sexStr = "女"
}
return sexStr
}
}
class Saifu: Person{
var money : Int
var card : Bool
init(name : String , age : Int , sex : Int , money : Int , card : Bool){
self.money = money
self.card = card
super.init(name: name, age: age, sex: sex)
}
// サブクラスからスーパークラスのconvenienceなinitは呼べない。
}
var boku :Person = Person(name: "syake", age: 30, sex: "man")
boku.sex_string()
var saihu : Saifu = Saifu(name: "Takeshi", age: 29, sex: 0, money: 30000, card: true)
saihu.money
saihu.sex_string()
//使い方に注意したい。













