Apa itu Extension Properties di Kotlin?

Dhe997


Extension Properties

Pada materi Kotlin Functional Programming kita sudah mengenal bahwa Kotlin dapat meng-extends sebuah fungsi pada kelas tanpa harus mewarisi kelasnya. Hal ini dilakukan dengan deklarasi khusus yang disebut dengan Extension.

Extension properties pada Kotlin sama halnya seperti melakukannya pada Extension function. 
Kita dapat menambahkan sebuah properti tanpa harus membuat sebuah kelas yang mewarisi kelas tersebut. Tetapi perlu diingat bahwa properti yang kita buat bukan benar - benar berada pada kelas. Sebabnya, Extension properties dilakukan di luar kelas. 
Dengan demikian, Extension properties hanya bisa didefinisikan dengan cara menyediakan getter dan/atau setter secara eksplisit. Mari kita buat sebuah Extension properties pada kelas Animal.

  1. class Animal(var name: String, var weight: Double, var age: Int, var isMammal: Boolean)

  2.  

  3. val Animal.getAnimalInfo : String

  4.     get() =  "Nama: ${this.name}, Berat: ${this.weight}, Umur: ${this.age} Mamalia: ${this.isMammal}"



Dengan menambahkan Extension properties getAnimalInfo pada kelas Animal, maka kita dapat menggunakan properti tersebut pada sebuah objek kelas Animal.

  1. fun main() {

  2.     val dicodingCat = Animal("Dicoding Miaw", 5.0, 2, true)

  3.     println(dicodingCat.getAnimalInfo)

  4. }



Dengan menjalankan kode tersebut maka, output-nya sebagai berikut:
Nama: Dicoding Miaw, Berat: 5.0, Umur: 2 Mammalia: true

Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.