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.

Lua - Object Oriented

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:

  1. Penyembusan (Encapsulation): Hal ini seperti menyimpan mainan Anda di dalam kotak. Kotak (objek) berisi semua hal yang terkait (data dan fungsi).
  2. 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!
  3. Polimorfisme (Polymorphism): Hal ini seperti memiliki remote kontrol yang bekerja untuk berbagai perangkat. tombol yang sama, tindakan berbeda tergantung pada apa yang Anda kendalikan.
  4. 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:

  1. Kita menciptakan tabel bernama Dog.
  2. Kita set Dog.__index = Dog. Ini adalah sedikit sihir Lua yang membantu dengan pewarisan.
  3. Kita menciptakan fungsi new yang bertindak sebagai konstraktor. Itu menciptakan anjing baru dengan nama dan umur.
  4. 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