La Programació Orientada a Objectes (POO) és un paradigma de programació que utilitza "objectes" per dissenyar aplicacions i programes. Els objectes poden ser considerats com entitats que contenen dades i mètodes per manipular aquestes dades. La POO és una manera poderosa i flexible d'organitzar el codi, i és fonamental per a la programació en C++.

Conceptes Clau de la POO

  1. Classes i Objectes

  • Classe: És una plantilla o plànol per crear objectes. Defineix les propietats (atributs) i els comportaments (mètodes) que els objectes creats a partir de la classe tindran.
  • Objecte: És una instància d'una classe. Quan es crea un objecte, es diu que es "instancia" una classe.

  1. Encapsulació

  • Encapsulació: És el procés de combinar dades i mètodes que operen sobre aquestes dades en una sola unitat, la classe. Això ajuda a protegir les dades de l'accés no autoritzat i a mantenir la integritat de l'objecte.

  1. Herència

  • Herència: Permet crear una nova classe (classe derivada) a partir d'una classe existent (classe base). La classe derivada hereta els atributs i mètodes de la classe base, i pot afegir-ne de nous o modificar els existents.

  1. Polimorfisme

  • Polimorfisme: Permet que una interfície comuna sigui utilitzada per diferents tipus d'objectes. Això es pot aconseguir mitjançant la sobrecàrrega de mètodes i l'ús de funcions virtuals.

  1. Abstracció

  • Abstracció: Consisteix en ocultar els detalls d'implementació i mostrar només la funcionalitat essencial. Això ajuda a reduir la complexitat i a augmentar la comprensió del codi.

Exemples Pràctics

Definició d'una Classe i Creació d'un Objecte

#include <iostream>
using namespace std;

// Definició de la classe
class Cotxe {
public:
    // Atributs
    string marca;
    string model;
    int any;

    // Mètode
    void mostrarInformacio() {
        cout << "Marca: " << marca << ", Model: " << model << ", Any: " << any << endl;
    }
};

int main() {
    // Creació d'un objecte de la classe Cotxe
    Cotxe cotxe1;
    cotxe1.marca = "Toyota";
    cotxe1.model = "Corolla";
    cotxe1.any = 2020;

    // Ús del mètode de l'objecte
    cotxe1.mostrarInformacio();

    return 0;
}

Explicació del Codi

  • Definició de la Classe: La classe Cotxe té tres atributs (marca, model, any) i un mètode (mostrarInformacio).
  • Creació de l'Objecte: Es crea un objecte cotxe1 de la classe Cotxe i s'assignen valors als seus atributs.
  • Ús del Mètode: Es crida el mètode mostrarInformacio per mostrar la informació del cotxe.

Exercicis Pràctics

Exercici 1: Crear una Classe

Crea una classe Persona amb els atributs nom, edat i ciutat. Afegeix un mètode mostrarInformacio que imprimeixi la informació de la persona.

Solució

#include <iostream>
using namespace std;

class Persona {
public:
    string nom;
    int edat;
    string ciutat;

    void mostrarInformacio() {
        cout << "Nom: " << nom << ", Edat: " << edat << ", Ciutat: " << ciutat << endl;
    }
};

int main() {
    Persona persona1;
    persona1.nom = "Joan";
    persona1.edat = 30;
    persona1.ciutat = "Barcelona";

    persona1.mostrarInformacio();

    return 0;
}

Exercici 2: Herència

Crea una classe Estudiant que hereti de la classe Persona i afegeix un atribut curs. Afegeix un mètode mostrarInformacio que imprimeixi la informació de l'estudiant, incloent el curs.

Solució

#include <iostream>
using namespace std;

class Persona {
public:
    string nom;
    int edat;
    string ciutat;

    void mostrarInformacio() {
        cout << "Nom: " << nom << ", Edat: " << edat << ", Ciutat: " << ciutat << endl;
    }
};

class Estudiant : public Persona {
public:
    string curs;

    void mostrarInformacio() {
        cout << "Nom: " << nom << ", Edat: " << edat << ", Ciutat: " << ciutat << ", Curs: " << curs << endl;
    }
};

int main() {
    Estudiant estudiant1;
    estudiant1.nom = "Anna";
    estudiant1.edat = 22;
    estudiant1.ciutat = "Girona";
    estudiant1.curs = "Informàtica";

    estudiant1.mostrarInformacio();

    return 0;
}

Resum

En aquesta secció, hem introduït els conceptes bàsics de la Programació Orientada a Objectes (POO) en C++. Hem après sobre classes, objectes, encapsulació, herència, polimorfisme i abstracció. També hem vist exemples pràctics de com definir classes, crear objectes i utilitzar herència. Aquests conceptes són fonamentals per a la programació en C++ i seran la base per a temes més avançats en els següents mòduls.

© Copyright 2024. Tots els drets reservats