Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Programare Orientată pe Obiecte (OOP) bazată pe Prototipuri în Lua în Lua

Ghid complet pentru OOP în Lua: crearea claselor cu constructori, delegarea prin __index, operatorul colon ':' și implementarea moștenirii între clase.

Sintaxă
ContBancar = {}; ContBancar.__index = ContBancar; function ContBancar:new(...)

Lua implementează paradigma Object-Oriented Programming (OOP) bazată pe prototipuri (similară cu JavaScript înainte de ES6). Nu există un cuvânt-cheie class; în schimb, o clasă este o tabelă care servește drept prototip și conține metodele, iar noile instanțe își deleagă căutarea membrilor către această tabelă prin __index.

Clasa ContBancar cu depunere, retragere și moștenire
-- 1. Definirea clasei părinte:
local ContBancar = {}
ContBancar.__index = ContBancar

-- Constructorul:
function ContBancar:new(titular, soldInitial)
    local instanta = {
        titular = titular or "Anonim",
        sold = soldInitial or 0
    }
    setmetatable(instanta, self)
    return instanta
end

-- Metode ale clasei (operatorul ':' injectează automat 'self'):
function ContBancar:depune(suma)
    self.sold = self.sold + suma
    print(string.format("[%s] Depunere: +%d lei. Sold curent: %d lei.", self.titular, suma, self.sold))
end

function ContBancar:retrage(suma)
    if self.sold >= suma then
        self.sold = self.sold - suma
        print(string.format("[%s] Retragere: -%d lei. Sold rămas: %d lei.", self.titular, suma, self.sold))
        return true
    else
        print(string.format("[%s] Fonduri insuficiente!", self.titular))
        return false
    end
end

-- 2. Utilizare practică:
local contAndrei = ContBancar:new("Andrei Popescu", 500)
contAndrei:depune(250)
contAndrei:retrage(100)
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Programare Orientată pe Obiecte (OOP) bazată pe Prototipuri în Lua

Ai o nelămurire despre utilizarea comenzii Programare Orientată pe Obiecte (OOP) bazată pe Prototipuri în Lua sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.