Lua - Pengenalan kepada OOP
Pengenalan ke OOP
Hai sana, para pemrogram yang sedang belajar! Hari ini, kita akan memulai perjalanan menarik ke dunia Pemrograman Berorientasi Objek (OOP) menggunakan Lua. Jangan khawatir jika Anda masih pemula di bidang pemrograman; saya akan memandu Anda di setiap langkah dengan perhatian dan kesungguhan yang saya gunakan di kelas selama tahun tahun.
Pemrograman Berorientasi Objek seperti membangun dengan batu bata LEGO. Setiap batu bata (atau objek) memiliki propertinya sendiri dan dapat melakukan hal-hal tertentu. Ketika kita menggabungkannya, kita menciptakan struktur menakjubkan (atau program)!
Fitur OOP
Sebelum kita mendalami Lua, mari kita lihat secara cepat fitur utama OOP:
- Penyembusan (Encapsulation): Hal ini seperti menyimpan mainan Anda di dalam kotak. Kotak (objek) berisi semua hal yang terkait (data dan fungsi).
- Pewarisan (Inheritance): Bayangkan Anda memiliki mainan robot. Sekarang Anda mendapat mainan robot baru yang dapat melakukan semua hal yang bisa mainan lama, dan juga beberapa trik baru. Itu adalah pewarisan!
- Polimorfisme (Polymorphism): Hal ini seperti memiliki remote kontrol yang bekerja untuk berbagai perangkat. tombol yang sama, tindakan berbeda tergantung pada apa yang Anda kendalikan.
- Abstraksi (Abstraction): Bayangkan menggunakan microwave. Anda tidak perlu mengetahui bagaimana cara kerjanya di dalam; Anda hanya perlu mengetahui tombol mana yang harus ditekan.
OOP dalam Lua
Sekarang, mari kita lihat bagaimana kita dapat menggunakan konsep OOP ini dalam Lua. Lua tidak memiliki kelas bawaan seperti beberapa bahasa lain, tetapi kita dapat menciptakan struktur berorientasi objek menggunakan tabel dan fungsi. Itu seperti kita menciptakan set LEGO sendiri dari awal!
Membuat Kelas Sederhana
Mari kita mulai dengan menciptakan kelas sederhana. Dalam Lua, kita menggunakan tabel untuk mewakili kelas.
local Dog = {}
Dog.__index = Dog
function Dog.new(name, age)
local self = setmetatable({}, Dog)
self.name = name
self.age = age
return self
end
function Dog:bark()
print(self.name .. " says: Woof!")
end
mari kitauraikan ini:
- Kita menciptakan tabel bernama
Dog
. - Kita set
Dog.__index = Dog
. Ini adalah sedikit sihir Lua yang membantu dengan pewarisan. - Kita menciptakan fungsi
new
yang bertindak sebagai konstraktor. Itu menciptakan anjing baru dengan nama dan umur. - Kita menambahkan metode
bark
ke kelas Dog.
Membuat Objek
Sekarang kita memiliki kelas Dog, mari kita buat objek Dog:
local myDog = Dog.new("Buddy", 3)
Selamat! Anda baru saja menciptakan objek pertama Anda. myDog
sekarang adalah objek Dog dengan nama "Buddy" dan umur 3.
Mengakses Properti
Kita dapat mengakses properti anjing kita seperti ini:
print(myDog.name) -- Output: Buddy
print(myDog.age) -- Output: 3
Itu sama mudahnya menggunakan notasi titik!
Mengakses Fungsi Anggota
Untuk membuat anjing kita menjerit, kita dapat memanggil metode bark:
myDog:bark() -- Output: Buddy says: Woof!
Perhatikan tanda titik :
bukannya titik. Ini adalah cara Lua untuk mengirimkan self
ke metode.
Contoh Lengkap
Mari kita gabungkan semuanya:
local Dog = {}
Dog.__index = Dog
function Dog.new(name, age)
local self = setmetatable({}, Dog)
self.name = name
self.age = age
return self
end
function Dog:bark()
print(self.name .. " says: Woof!")
end
local Labrador = {}
setmetatable(Labrador, {__index = Dog})
function Labrador.new(name, age, color)
local self = Dog.new(name, age)
setmetatable(self, {__index = Labrador})
self.color = color
return self
end
function Labrador:swim()
print(self.name .. " is swimming!")
end
function Labrador:bark()
print(self.name .. " says: Woof woof woof!")
end
local myDog = Dog.new("Buddy", 3)
local myLabrador = Labrador.new("Max", 2, "Yellow")
myDog:bark() -- Output: Buddy says: Woof!
myLabrador:bark() -- Output: Max says: Woof woof woof!
myLabrador:swim() -- Output: Max is swimming!
Dan itu dia! Kita telah menciptakan struktur kelas dasar, implementasi pewarisan, dan bahkan mengganti metode. Anda sudah dalam jalur menjadi ahli OOP Lua!
Ingat, latihan membuat sempurna. Cobalah menciptakan kelas Anda sendiri dan ber eksperimen dengan properti dan metode yang berbeda. Selamat coding!
Credits: Image by storyset