1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kotlin クラスとインスタンス

Posted at

##▼クラス
複数の変数などを束ねる場所のこと
関数や配列も入れられる

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()
}

複数束ねる場合には、上で書いたクラスはいじる必要がなく、インスタンスを増やして同じように書いてあげることで束ねることができる

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?