Postingan lainnya
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
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
udah dicoba malah jadi aneh. setelah dicoba update "anak1.nama" pas "println()" yg keluar cuman "n" doang. <pre> fun main (args: Array<String>){ 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 & getter
var nama : String
get() = firstName + " " + lastName
set(value) {
val namaPanjang = value.split("")
firstName = namaPanjang[0]
lastName = namaPanjang[1]
}
} </pre>
maaf udah ngerti gan. ane salah di "value.split("")" harusnya -> "value.split(" ")"