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: 25
Explicació
@nom
i@edat
: Són variables d'instància. Cada instància de la classePersona
tindrà 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: Camry
Explicació
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: 600
Exercici 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 insuficient
Resum
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