Di artikel ini, Anda akan diperkenalkan dengan pemrograman berorientasi objek di Kotlin. Anda akan mempelajari apa itu kelas, bagaimana membuat objek dan menggunakannya dalam program Anda.
Kotlin mendukung pemrograman fungsional dan berorientasi objek.
Kotlin mendukung fitur-fitur seperti fungsi tingkat tinggi, jenis fungsi, dan lambda yang menjadikannya pilihan tepat untuk bekerja dalam gaya pemrograman fungsional. Anda akan mempelajari tentang konsep ini di bab-bab selanjutnya. Artikel ini akan fokus pada gaya pemrograman berorientasi objek di Kotlin.
Pemrograman Berorientasi Objek (OOP)
Dalam gaya pemrograman berorientasi objek, Anda dapat membagi masalah yang kompleks menjadi set yang lebih kecil dengan membuat objek.
Objek-objek ini memiliki dua karakteristik:
- negara
- tingkah laku
Mari kita ambil beberapa contoh:
- Lampu adalah sebuah benda
- Bisa dalam keadaan hidup atau mati.
- Anda bisa
turn on
danturn off
lampu (perilaku).
- Sepeda adalah sebuah benda
- Ini memiliki gigi saat ini, dua roda, jumlah gigi, dll. Menyatakan.
- Ini memiliki perilaku pengereman, akselerasi, perubahan gigi dll.
Anda akan belajar tentang fitur detail dari pemrograman berorientasi objek seperti: enkapsulasi data, pewarisan dan polimorfisme saat kita melanjutkan. Artikel ini akan fokus pada hal-hal dasar agar semuanya tetap sederhana.
Bacaan yang disarankan: Apa itu objek?
Kelas Kotlin
Sebelum Anda membuat objek di Kotlin, Anda perlu mendefinisikan sebuah kelas.
Kelas adalah cetak biru untuk objek tersebut.
Kita dapat menganggap kelas sebagai sketsa (prototipe) sebuah rumah. Ini berisi semua detail tentang lantai, pintu, jendela dll. Berdasarkan uraian ini kami membangun rumah. Rumah adalah objeknya.
Karena, banyak rumah dapat dibuat dari deskripsi yang sama, kita dapat membuat banyak objek dari satu kelas.
Bagaimana cara mendefinisikan kelas di Kotlin?
Untuk mendefinisikan kelas di Kotlin, class
kata kunci digunakan:
class ClassName (// properti // fungsi anggota…)
Berikut contohnya:
class Lamp (// property (data member) private var isOn: Boolean = false // fungsi anggota fun turnOn () (isOn = true) // fungsi anggota fun turnOff () (isOn = false))
Di sini, kami mendefinisikan kelas bernama Lamp.
Kelas memiliki satu properti isOn (didefinisikan dengan cara yang sama seperti variabel), dan dua fungsi anggota turnOn()
dan turnOff()
.
Bacaan yang Disarankan: Fungsi Kotlin
Di Kotlin, properti harus diinisialisasi atau harus dideklarasikan abstract
( Kunjungi: Kelas Abstrak Kotlin untuk mempelajari lebih lanjut). Dalam contoh di atas, properti isOn diinisialisasi ke false
.
Kelas, objek, properti, fungsi anggota, dll. Dapat memiliki pengubah visibilitas. Misalnya, properti isOn bersifat privat. Artinya, properti isOn hanya dapat diubah dari dalam kelas Lamp.
Pengubah visibilitas lainnya adalah:
private
- terlihat (dapat diakses) dari dalam kelas saja.public
- terlihat dimana-mana.protected
- terlihat oleh kelas dan subkelasnya.internal
- semua klien di dalam modul dapat mengaksesnya.
Anda akan mempelajari protected
dan internal
mengubah nanti di artikel pengubah visibilitas Kotlin.
Jika Anda tidak menentukan pengubah visibilitas, itu akan menjadi public
default.
Dalam program di atas, turnOn()
dan turnOff()
fungsi anggota adalah public
sedangkan, properti isOn bersifat pribadi.
Objek Kotlin
Saat kelas ditentukan, hanya spesifikasi untuk objek yang ditentukan; tidak ada memori atau penyimpanan yang dialokasikan.
Untuk mengakses anggota yang ditentukan dalam kelas, Anda perlu membuat objek. Mari membuat objek kelas Lamp.
class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class )
Program ini membuat dua objek l1 dan l2 dari kelas Lamp. Properti isOn untuk kedua lampu l1 dan l2 adalah false
.
Bagaimana cara mengakses anggota?
Anda dapat mengakses properti dan fungsi anggota kelas dengan menggunakan .
notasi. Sebagai contoh,
l1.turnOn ()
Pernyataan ini memanggil fungsi turnOn () untuk objek l1.
Mari kita ambil contoh lain:
l2.isOn = true
Here, we tried to assign true
to isOn property of l2 object. Note that, isOn property is private
, and if you try to access isOn from outside the class, an exception is thrown.
Example: Kotlin Class and Object
class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus(lamp: String) ( if (isOn == true) println("$lamp lamp is on.") else println("$lamp lamp is off.") ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class l1.turnOn() l2.turnOff() l1.displayLightStatus("l1") l2.displayLightStatus("l2") )
When you run the program, the output will be:
l1 Lamp is on. l2 Lamp is off.
In the above program,
Lamp
class is created.- The class has a property isOn and three member functions
turnOn()
,turnOff()
anddisplayLightStatus()
. - Two objects l1 and l2 of Lamp class are created in the
main()
function. - Here,
turnOn()
function is called using l1 object:l1.turnOn()
. This method sets isOn instance variable of l1 object totrue
. - And,
turnOff()
function is called using l2 object:l1.turnOff()
. This method sets isOff instance variable of l2 object tofalse
. - Kemudian,
displayLightStatus()
fungsi dipanggil untuk objek l1 dan l2 yang mencetak pesan yang sesuai tergantung pada apakah properti isOn benar ataufalse
.
Perhatikan bahwa, properti isOn diinisialisasi false
di dalam kelas. Ketika sebuah objek kelas dibuat, properti isOn untuk objek tersebut diinisialisasi false
secara otomatis. Jadi, objek l2 tidak perlu dipanggil turnOff()
untuk menyetel properti isOn ke false
.
Sebagai contoh:
class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus() ( if (isOn == true) println("lamp is on.") else println("lamp is off.") ) ) fun main(args: Array) ( val lamp = Lamp() lamp.displayLightStatus() )
Saat Anda menjalankan program, hasilnya adalah:
lampu mati.
Artikel ini hanyalah pengantar pemrograman berorientasi objek di Kotlin. Periksa bab-bab ini secara berurutan untuk mempelajari lebih lanjut:
- Konstruktor dan Penginisialisasi Kotlin
- Kotlin Kata Kunci ini
- Kelas Bertingkat Kotlin