kotlin入門 後編 08 【 クラスとインスタンス⑥ 】引数に利用

https://paiza.io/ja ← サイトを開いてください。

このページでは「引数にインスタンスを利用する」を学習したいと思います。

 

 

変数を引数にする

fun main() {
    
    var a:Int = 10
    var b:Int = 20
    p( a , b )
}

fun p( a:Int , b:Int ) {
    println( a + b )
}

 

 

インスタンスを引数にする

fun main() {
    val A:Data = Data()
    p( A )
}

fun p( B:Data ) {
    println( B.a + B.b )
}

class Data {
    var a:Int = 10
    var b:Int = 20
}

 

 

注意点

コピーしたインスタンスは同期しています。

【変数のコピー】

fun main() {
    var a:Int = 10
    println( a  )
        
    var b:Int = a
    b = 100

    println( a  )
    println( b  )
}

 

【インスタンスのコピー】

fun main() {
    val A:Data = Data()
    println( A.a  )
        
    val B:Data = A
    B.a = 100

    println( A.a  )
    println( B.a  )
}


class Data {
    var a:Int = 10
}

 

【引数も同期される】

fun main() {
    val A:Data = Data()
    println( A.a  )
    p( A )
    println( A.a  )
}

fun p(B:Data){
    println( B.a  )
    B.a = 100
    println( B.a  )
}

class Data {
    var a:Int = 10
}

 

 

まとめ

・ 「関数の引数にインスタンスを渡す」を学びました。

・ クラスの型を宣言してあげる必要があります。 ( 省略不可 )

・ インスタンスをコピーすると同期されます。(シンクロしてる)