Introducció

La programació orientada a objectes (POO) és un paradigma de programació que utilitza "objectes" per dissenyar aplicacions i programes. Els objectes poden representar entitats del món real amb atributs (dades) i comportaments (mètodes). En Python, les classes són plantilles per crear objectes.

Conceptes Clau

  1. Classes

Una classe és una plantilla per crear objectes. Defineix un conjunt d'atributs i mètodes que els objectes creats a partir de la classe tindran.

  1. Objectes

Un objecte és una instància d'una classe. Cada objecte creat a partir d'una classe pot tenir diferents valors per als seus atributs.

  1. Atributs

Els atributs són variables que pertanyen a una classe. Es poden utilitzar per emmagatzemar informació sobre els objectes.

  1. Mètodes

Els mètodes són funcions definides dins d'una classe que descriuen els comportaments dels objectes.

Definició de Classes i Creació d'Objectes

Definició de Classes

Per definir una classe en Python, utilitzem la paraula clau class seguida del nom de la classe i dos punts. A continuació, es defineixen els atributs i mètodes de la classe.

class Cotxe:
    def __init__(self, marca, model, any):
        self.marca = marca
        self.model = model
        self.any = any

    def descripcio(self):
        return f"{self.marca} {self.model} ({self.any})"

Creació d'Objectes

Per crear un objecte d'una classe, simplement cridem la classe com si fos una funció, passant els arguments necessaris al constructor (__init__).

cotxe1 = Cotxe("Toyota", "Corolla", 2020)
cotxe2 = Cotxe("Honda", "Civic", 2019)

Accés als Atributs i Mètodes

Podem accedir als atributs i mètodes d'un objecte utilitzant la notació de punt.

print(cotxe1.marca)  # Sortida: Toyota
print(cotxe1.descripcio())  # Sortida: Toyota Corolla (2020)

Exemple Pràctic

Definició de la Classe

class Persona:
    def __init__(self, nom, edat):
        self.nom = nom
        self.edat = edat

    def saluda(self):
        return f"Hola, em dic {self.nom} i tinc {self.edat} anys."

Creació d'Objectes i Ús de Mètodes

persona1 = Persona("Anna", 30)
persona2 = Persona("Joan", 25)

print(persona1.saluda())  # Sortida: Hola, em dic Anna i tinc 30 anys.
print(persona2.saluda())  # Sortida: Hola, em dic Joan i tinc 25 anys.

Exercicis Pràctics

Exercici 1: Definició de Classes i Creació d'Objectes

Enunciat: Defineix una classe Llibre amb els atributs titol, autor i any_publicacio. Afegeix un mètode descripcio que retorni una cadena amb la descripció del llibre. Crea dos objectes de la classe Llibre i mostra la seva descripció.

Solució:

class Llibre:
    def __init__(self, titol, autor, any_publicacio):
        self.titol = titol
        self.autor = autor
        self.any_publicacio = any_publicacio

    def descripcio(self):
        return f"'{self.titol}' de {self.autor} ({self.any_publicacio})"

llibre1 = Llibre("1984", "George Orwell", 1949)
llibre2 = Llibre("El Petit Príncep", "Antoine de Saint-Exupéry", 1943)

print(llibre1.descripcio())  # Sortida: '1984' de George Orwell (1949)
print(llibre2.descripcio())  # Sortida: 'El Petit Príncep' de Antoine de Saint-Exupéry (1943)

Exercici 2: Atributs i Mètodes

Enunciat: Defineix una classe CompteBancari amb els atributs titular i saldo. Afegeix mètodes per depositar i retirar diners, així com un mètode per mostrar el saldo actual. Crea un objecte de la classe CompteBancari i realitza algunes operacions.

Solució:

class CompteBancari:
    def __init__(self, titular, saldo=0):
        self.titular = titular
        self.saldo = saldo

    def depositar(self, quantitat):
        self.saldo += quantitat

    def retirar(self, quantitat):
        if quantitat <= self.saldo:
            self.saldo -= quantitat
        else:
            print("Saldo insuficient")

    def mostrar_saldo(self):
        return f"Saldo actual: {self.saldo}€"

compte = CompteBancari("Maria", 1000)
compte.depositar(500)
compte.retirar(200)
print(compte.mostrar_saldo())  # Sortida: Saldo actual: 1300€

Resum

En aquesta secció, hem après els conceptes bàsics de la programació orientada a objectes en Python, incloent la definició de classes, la creació d'objectes, i l'accés als atributs i mètodes. També hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Ara estem preparats per explorar temes més avançats en la programació orientada a objectes, com l'herència i el polimorfisme.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats