Tentang getter and setter di kotlin

pada tutorial di "object oriented programming di kotlin" > "getter dan setter di class"

fun main (args: Array<String>){
val anak1 = Orang("herik", "hamzah")
    println(anak1.nama)
}

class Orang (firstName: String, lastName: String){
    var namaDepan = firstName
    var namaBelakang = lastName

    //setter & getter
    var nama : String
    get() = namaDepan + " " + namaBelakang
        set(value) {
            val namaPanjang = value.split("")
            namaDepan = namaPanjang[0]
            namaBelakang = namaPanjang[1]
        }

}

kenapa harus memakai method set(). padahal tanpa itu sudah bisa memisahkan nama. Ane kurang mengerti kenapa harus memakai method set().

fun main (args: Array<String>){
val anak1 = Orang("herik", "hamzah")
    println(anak1.nama)
}

class Orang (firstName: String, lastName: String){
    var namaDepan = firstName
    var namaBelakang = lastName

    //setter & getter
    var nama : String = ""
        get() = namaDepan + " " + namaBelakang
}

terimaKasih

avatar Herik
@Herik

5 Kontribusi 0 Poin

Diperbarui 5 tahun yang lalu

2 Jawaban:

Jawaban Terpilih

Menurut aku yang diatas set nya dicustom. Jadi saat aku set nama, secara tidak langsung dia juga update namaDepan dan namaBelakang.

Contohnya :

<pre> val anak1 = Orang("herik", "hamzah") println(anak1.nama) // herik hamzah

anak1.nama = "Ifan Zalukhu" println(anak1.nama) // ifan zalukhu println(anak1.namaDepan) // ifan </pre>

Jadi kita cuma set nama, otomatis dia update namaDepan dan namaBelakang

avatar IfanZalukhu
@IfanZalukhu

217 Kontribusi 158 Poin

Dipost 5 tahun yang lalu

Tanggapan

maaf udah ngerti gan. ane salah di "value.split("")" harusnya -> "value.split(" ")"

terima kasih banyak

udah dicoba malah jadi aneh. setelah dicoba update "anak1.nama" pas "println()" yg keluar cuman "n" doang. <pre> fun main (args: Array&lt;String&gt;){ val anak1 = Orang("herik", "hamzah") println(anak1.nama) anak1.nama = "nggak bisa" println(anak1.nama) //n println(anak1.lastName) //n }

class Orang (var firstName: String, var lastName: String){

//setter &amp; getter
var nama : String
get() = firstName + &quot; &quot; + lastName

    set(value) {
        val namaPanjang = value.split(&quot;&quot;)
        firstName = namaPanjang[0]
        lastName = namaPanjang[1]
    }

} </pre>

maaf udah ngerti gan. ane salah di "value.split("")" harusnya -&gt; "value.split(" ")"

avatar Herik
@Herik

5 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban