kotlinのメモです。
2006 views
Person1クラスはkotlinでよく使われるコンストラクタの記法。クラスの引数にメンバ変数を宣言する。このときvarをつけて宣言することがポイント。関数の引数の書き方と似ているが、関数の引数にはvarをつけない。
class Person1(var name:String, var age:Int) {
//大抵はこの書式で書いているはず。引数にvarをつけることがポイント。
fun show() {
println("${this.name}は${this.age}歳です")
}
}
Person1クラスのメンバ変数にvarをつけずに宣言したのがPerson2の記法。
クラスに引数をつけて書き、initでメンバ変数を初期化する。
//java風にコンストラクタで引数をつけて、メンバに入れる方法
class Person2(name:String, age:Int) {
var name:String
var age:Int
init {
//コンストラクタのメンバにアクセスできる
this.name = name
this.age = age
}
fun show() {
println("${this.name}は${this.age}歳です")
}
}
コンストラクタを明記して記述したのがPerson3。
//さらにコンストラクタを明記する方法
class Person3 constructor(name:String, age:Int) {
var name:String
var age:Int
init {
//コンストラクタのメンバにアクセスできる
this.name = name
this.age = age
}
fun show() {
println("${this.name}は${this.age}歳です")
}
}
セカンダリコンストラクタ、サードコンストラクタなど複数のコンストラクタを作成する場合の書き方が以下。
//セカンダリコンストラクタ
class Person4(var name:String, var age:Int) {
constructor(name:String):this(name, 16) {
}
constructor():this("kijima", 23){
}
fun show() {
println("${this.name}は${this.age}歳です")
}
}
実際に実行してみた。p1~p3はコンストラクタが一個しかないので、それぞれ一つずつ実行。
p4~p6は、コンストラクタごとに呼び分けている。
fun main(args:Array<String>){
val p1 = Person1("konishi", 40)
p1.show()
val p2 = Person2("konishi", 41)
p2.show()
val p3 = Person3("konishi", 42)
p3.show()
val p4 = Person4("konishi", 43)
p4.show()
val p5 = Person4("konishi")
p5.show()
val p6 = Person4()
p6.show()
}
実行結果。
konishiは40歳です
konishiは41歳です
konishiは42歳です
konishiは43歳です
konishiは16歳です
kijimaは23歳です
Page 6 of 36.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/