En aquest tema, explorarem les variables i mètodes d'instància en Ruby. Aquestes són parts fonamentals de la programació orientada a objectes (OOP) i són essencials per crear classes i objectes que encapsulin dades i comportaments.
Què són les Variables d'Instància?
Les variables d'instància són variables que pertanyen a una instància específica d'una classe. Cada objecte (instància) de la classe té el seu propi conjunt de variables d'instància. Aquestes variables es defineixen dins dels mètodes de la classe i comencen amb un símbol @.
Exemple de Variables d'Instància
class Persona
def initialize(nom, edat)
@nom = nom
@edat = edat
end
def mostrar_informacio
puts "Nom: #{@nom}, Edat: #{@edat}"
end
end
persona1 = Persona.new("Joan", 30)
persona2 = Persona.new("Anna", 25)
persona1.mostrar_informacio # Sortida: Nom: Joan, Edat: 30
persona2.mostrar_informacio # Sortida: Nom: Anna, Edat: 25Explicació
@nomi@edat: Són variables d'instància. Cada instància de la classePersonatindrà les seves pròpies versions d'aquestes variables.initialize: És un mètode especial que s'executa quan es crea una nova instància de la classe. Assigna valors a les variables d'instància.mostrar_informacio: És un mètode d'instància que accedeix a les variables d'instància i mostra la informació de l'objecte.
Què són els Mètodes d'Instància?
Els mètodes d'instància són mètodes que es defineixen dins d'una classe i poden ser cridats en instàncies d'aquesta classe. Aquests mètodes poden accedir i modificar les variables d'instància de l'objecte.
Exemple de Mètodes d'Instància
class Cotxe
def initialize(marca, model)
@marca = marca
@model = model
end
def mostrar_detalls
puts "Marca: #{@marca}, Model: #{@model}"
end
def canviar_model(nou_model)
@model = nou_model
end
end
cotxe1 = Cotxe.new("Toyota", "Corolla")
cotxe1.mostrar_detalls # Sortida: Marca: Toyota, Model: Corolla
cotxe1.canviar_model("Camry")
cotxe1.mostrar_detalls # Sortida: Marca: Toyota, Model: CamryExplicació
mostrar_detalls: És un mètode d'instància que mostra els detalls del cotxe.canviar_model: És un mètode d'instància que permet canviar el model del cotxe.
Exercicis Pràctics
Exercici 1: Crear una Classe Llibre
Crea una classe Llibre amb les següents característiques:
- Variables d'instància:
titol,autor,pagines. - Mètodes d'instància:
mostrar_detalls,canviar_pagines.
class Llibre
def initialize(titol, autor, pagines)
@titol = titol
@autor = autor
@pagines = pagines
end
def mostrar_detalls
puts "Títol: #{@titol}, Autor: #{@autor}, Pàgines: #{@pagines}"
end
def canviar_pagines(noves_pagines)
@pagines = noves_pagines
end
end
# Crear una instància de Llibre
llibre1 = Llibre.new("El Quixot", "Miguel de Cervantes", 500)
llibre1.mostrar_detalls # Sortida: Títol: El Quixot, Autor: Miguel de Cervantes, Pàgines: 500
# Canviar el nombre de pàgines
llibre1.canviar_pagines(600)
llibre1.mostrar_detalls # Sortida: Títol: El Quixot, Autor: Miguel de Cervantes, Pàgines: 600Exercici 2: Crear una Classe CompteBancari
Crea una classe CompteBancari amb les següents característiques:
- Variables d'instància:
titular,saldo. - Mètodes d'instància:
mostrar_saldo,depositar,retirar.
class CompteBancari
def initialize(titular, saldo)
@titular = titular
@saldo = saldo
end
def mostrar_saldo
puts "Titular: #{@titular}, Saldo: #{@saldo}€"
end
def depositar(import)
@saldo += import
end
def retirar(import)
if import <= @saldo
@saldo -= import
else
puts "Saldo insuficient"
end
end
end
# Crear una instància de CompteBancari
compte1 = CompteBancari.new("Maria", 1000)
compte1.mostrar_saldo # Sortida: Titular: Maria, Saldo: 1000€
# Depositar diners
compte1.depositar(500)
compte1.mostrar_saldo # Sortida: Titular: Maria, Saldo: 1500€
# Retirar diners
compte1.retirar(200)
compte1.mostrar_saldo # Sortida: Titular: Maria, Saldo: 1300€
# Intentar retirar més diners dels que hi ha al saldo
compte1.retirar(2000) # Sortida: Saldo insuficientResum
En aquesta secció, hem après sobre les variables i mètodes d'instància en Ruby. Les variables d'instància permeten emmagatzemar dades específiques per a cada objecte, mentre que els mètodes d'instància permeten interactuar amb aquestes dades. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. En el següent tema, explorarem les variables i mètodes de classe, que són compartits per totes les instàncies d'una classe.
Curs de Programació en Ruby
Mòdul 1: Introducció a Ruby
Mòdul 2: Conceptes Bàsics de Ruby
Mòdul 3: Treballant amb Col·leccions
Mòdul 4: Programació Orientada a Objectes en Ruby
- Classes i Objectes
- Variables i Mètodes d'Instància
- Variables i Mètodes de Classe
- Herència
- Mòduls i Mixins
Mòdul 5: Conceptes Avançats de Ruby
- Blocs, Procs i Lambdas
- Metaprogramació
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Expressions Regulars
Mòdul 6: Introducció a Ruby on Rails
- Què és Ruby on Rails?
- Configuració de l'Entorn Rails
- Creació d'una Aplicació Simple en Rails
- Arquitectura MVC
- Rutes
Mòdul 7: Proves en Ruby
- Introducció a les Proves
- Proves Unitàries amb Minitest
- Desenvolupament Basat en Comportament amb RSpec
- Mocking i Stubbing
Mòdul 8: Millors Pràctiques en Ruby
- Estil de Codi i Convencions
- Refactorització
- Optimització del Rendiment
- Millors Pràctiques de Seguretat
