Ruby este un limbaj orientat pe obiecte pur: nu există date care să nu fie obiecte. În Ruby, starea internă a unui obiect este complet privată prin variabilele de instanță prefixate cu @, accesul din exterior realizându-se exclusiv prin metode (getters și setters).
Definirea clasei ContClient cu attr_accessor și validare
class ContClient
# Generează automat metodele getter și setter pentru atribute:
attr_accessor :nume, :email
# Generează doar getter (read-only):
attr_reader :id, :sold
# Constructorul apelat automat de ContClient.new:
def initialize(id, nume, email, sold_initial = 0)
@id = id
@nume = nume
@email = email
@sold = sold_initial
end
# Metodă publică de afaceri:
def alimenteaza(suma)
raise ArgumentError, "Suma trebuie să fie pozitivă!" if suma <= 0
@sold += suma
puts "[Cont #{@id}] S-au adăugat #{suma} lei. Sold nou: #{@sold} lei."
end
# Reprezentare personalizată a obiectului în consolă:
def to_s
"Client: #{@nume} (Email: #{@email}, Sold: #{@sold} RON)"
end
end
# Instanțierea obiectului:
client1 = ContClient.new(501, "Dan Teodorescu", "dan@companie.ro", 1200)
client1.alimenteaza(300)
puts client1
Întrebări & Exemple de Cod:
Programare pe Obiecte în Ruby: Clase, initialize, @variabile și attr_accessorAi o nelămurire despre utilizarea comenzii
Programare pe Obiecte în Ruby: Clase, initialize, @variabile și attr_accessorsau 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.