##▼クラス
複数の変数などを束ねる場所のこと
関数や配列も入れられる
class A {
val a = "りんご"
val b =100
}
##▼インスタンス
インスタンスは変数に数字や文字を入れることではなく、クラスを入れること。
変数などが入っているクラスをコピーして、クラスの中身を使えるようにすること。
クラスの中身を使えるようにするには・・・
インスタンス化し、クラスをコピーする
ここでは、「class A」というのがmain関数の中で変数としてコピーされている。
これはクラスの中身を変更する必要がなく、main関数の中で修正等ができるようになる。
fun main() {
val a = A()
}
↓
class A {
val a = "りんご"
val b =100
}
コピーしたクラスは表示させたり、
fun main() {
val a = A()
parintln(a.b)
}
///結果
///100
編集することが可能になる
fun main() {
val a = A()
parintln(a.b)
a.b = 300
println(a.b)
}
///結果
///100
///300
###▼束ねて管理
fun main() {
var name:String = "みかん"
var price:Int = 100
println("そらは${name}を${price}円で買った")
}
///そらはみかんを100円で買った
これをクラスとインスタンスを使って作ってみる
fun main() {
val orange = Fruit()
orange.p()
}
class Fruit {
var name:String = "みかん"
var price:Int = 100
fun p {
println("そらは${name}を${price}円で買った")
}
}
///そらはみかんを100円で買った
編集も可能
fun main() {
val orange = Fruit()
orange.price = 200
orange.p()
}
編集することで、100円が200円に変更できる
ただ、1つのものを束ねるだけであれば、変数の方が使いやすい。
クラスやインスタンスで使うのは複数束ねる必要があるときが便利になる。
fun main() {
val orange = Fruit()
orange.p()
val strawberry =Fruit()
strawberry.name = "いちご"
strawberry.price = 400
strawberry.p()
}
複数束ねる場合には、上で書いたクラスはいじる必要がなく、インスタンスを増やして同じように書いてあげることで束ねることができる