L'objectiu principal de la programació C++ és introduir el concepte d'orientació a objectes al llenguatge de programació C.
La Programació Orientada a Objectes és un paradigma que aporta molts conceptes com ara herència, unió de dades, polimorfisme, etc.
El paradigma de programació on tot es representa com un objecte es coneix com a llenguatge de programació veritablement orientat a objectes. Petit sermo es considera el primer llenguatge de programació realment orientat a objectes.
OOPs (Sistema de programació orientada a objectes)
Objecte significa una entitat de paraula real com ara bolígraf, cadira, taula, etc. Programació Orientada a Objectes és una metodologia o paradigma per dissenyar un programa utilitzant classes i objectes. Simplifica el desenvolupament i manteniment del programari proporcionant alguns conceptes:
caràcter a cadena
- Objecte
- Classe
- Herència
- Polimorfisme
- Abstracció
- Encapsulació
Objecte
Qualsevol entitat que tingui estat i comportament es coneix com a objecte. Per exemple: cadira, bolígraf, taula, teclat, bicicleta, etc. Pot ser físic i lògic.
Classe
Col·lecció d'objectes s'anomena classe. És una entitat lògica.
Una classe en C++ és l'element fonamental que condueix a la programació orientada a objectes. S'ha de crear una instància de classe per accedir i utilitzar els membres de dades i les funcions dels membres del tipus de dades definides per l'usuari. La classe d'un objecte actua com el seu model. Preneu com a exemple la classe dels cotxes. Encara que es puguin utilitzar diferents noms i marques per a diferents cotxes, tots tindran algunes característiques en comú, com ara quatre rodes, un límit de velocitat, una autonomia de milles, etc. En aquest cas, la classe de cotxe es representa per les rodes, les limitacions de velocitat i el quilometratge.
Herència
Quan un objecte adquireix totes les propietats i comportaments de l'objecte pare és a dir, conegut com a herència. Proporciona la reutilització del codi. S'utilitza per aconseguir polimorfisme en temps d'execució.
- Subclasse - La subclasse o classe derivada fa referència a una classe que rep propietats d'una altra classe.
- Superclasse: el terme 'classe base' o 'superclasse' fa referència a la classe de la qual una subclasse hereta les seves propietats.
- Reutilitzabilitat: com a resultat, quan volem crear una nova classe, però una classe existent ja conté part del codi que necessitem, podem generar la nostra nova classe a partir de la classe antiga gràcies a l'herència. Això ens permet utilitzar els camps i mètodes de la classe preexistent.
Polimorfisme
Quan una tasca es realitza de diferents maneres és a dir, conegut com a polimorfisme. Per exemple: per convèncer el client d'una altra manera, dibuixar alguna cosa, p. forma o rectangle, etc.
exemple de mapa java
Situacions diferents poden fer que una operació es comporti de manera diferent. El tipus de dades utilitzades en l'operació determina el comportament.
Abstracció
Ocultar detalls interns i mostrar la funcionalitat es coneix com abstracció. L'abstracció de dades és el procés d'exposar al món exterior només la informació que és absolutament necessària mentre s'oculta la implementació o la informació de fons. Per exemple: trucada telefònica, no coneixem el processament intern.
En C++, utilitzem classes i interfícies abstractes per aconseguir l'abstracció.
Encapsulació
Unir (o embolicar) codi i dades junts en una sola unitat es coneix com a encapsulació. Per exemple: càpsula, s'embolica amb diferents medicaments.
L'encapsulació s'entén normalment com l'agrupació d'informació i dades relacionades en una sola entitat. L'encapsulació és el procés d'unir dades i les funcions que hi funcionen en la programació orientada a objectes. Mireu una il·lustració pràctica de l'encapsulació: en una empresa, hi ha diverses divisions, com ara la divisió de vendes, la divisió de finances i la divisió de comptes. Totes les transaccions financeres són gestionades pel sector financer, que també manté registres de totes les dades financeres. De la mateixa manera, la secció de vendes s'encarrega de totes les tasques relacionades amb les vendes i manté un registre de cada venda. Ara, es podria produir un escenari quan, per algun motiu, un funcionari financer requereixi tota la informació sobre vendes per a un mes concret. Sota el terme paraigua 'secció de vendes', tots els empleats que poden influir en les dades de la secció de vendes s'agrupen. L'abstracció o ocultació de dades és un altre efecte secundari de l'encapsulació. De la mateixa manera que l'encapsulació amaga les dades. En l'exemple esmentat, cap altra àrea no pot accedir a cap de les dades de cap de les seccions, com ara vendes, finances o comptes.
Enquadernació dinàmica - En l'enllaç dinàmic, es pren una decisió en temps d'execució sobre el codi que s'executarà en resposta a una trucada de funció. Per a això, C++ admet funcions virtuals.
Avantatge dels POO sobre el llenguatge de programació orientat a procediments
- Els POO facilita el desenvolupament i el manteniment, ja que, com en el llenguatge de programació orientat a procediments, no és fàcil de gestionar si el codi creix a mesura que creix la mida del projecte.
- Els POO ofereixen l'amagat de dades, mentre que en el llenguatge de programació orientat a procediments es pot accedir a les dades globals des de qualsevol lloc.
- Els POO ofereixen la capacitat de simular esdeveniments del món real de manera molt més eficaç. Podem proporcionar la solució del problema de la paraula real si utilitzem el llenguatge de programació orientada a objectes.
Per què necessitem oops en C++?
Hi havia diversos inconvenients als primers mètodes de programació, així com un rendiment baix. L'enfocament no podia abordar eficaçment els problemes del món real ja que, de manera similar a la programació orientada a procediments, no es podia reutilitzar el codi dins del programa, hi havia dificultats amb l'accés a les dades globals, etc.
Amb l'ús de classes i objectes, la programació orientada a objectes facilita el manteniment del codi. Com que l'herència permet la reutilització del codi, el programa és més senzill perquè no cal escriure el mateix codi repetidament. L'amagat de dades també es proporciona per idees com l'encapsulació i l'abstracció.
Per què C++ és un oop parcial?
Les característiques orientades a objectes del llenguatge C van ser la motivació principal darrere de la construcció del llenguatge C++.
El llenguatge de programació C++ es classifica com un llenguatge de programació parcial orientat a objectes malgrat que admet conceptes OOP, incloses les classes, els objectes, l'herència, l'encapsulació, l'abstracció i el polimorfisme.
numerar l'alfabet
1) La funció principal sempre ha d'estar fora de la classe en C++ i és necessària. Això vol dir que podem prescindir de classes i objectes i tenir una única funció principal a l'aplicació.
En aquest cas s'expressa com a objecte, que és la primera vegada que es viola Pure OOP.
2) Les variables globals són una característica del llenguatge de programació C++ a la qual es pot accedir qualsevol altre objecte dins del programa i es defineixen fora d'aquest. L'encapsulació està trencada aquí. Tot i que C++ fomenta l'encapsulació de classes i objectes, ho ignora per a les variables globals.
Sobrecàrrega
El polimorfisme també té un subconjunt conegut com a sobrecàrrega. Es diu que un operador o funció existent està sobrecarregat quan es veu obligat a operar amb un tipus de dades nou.
Conclusió
Després de llegir aquest curs sobre Conceptes OOPS en C++, haureu assolit una comprensió de la necessitat de la programació orientada a objectes, què són els OOP de C++ i els fonaments dels POO, com ara el polimorfisme, l'herència, l'encapsulació, etc. Juntament amb els casos de polimorfisme i herència, també vau aprendre sobre els avantatges dels OOP de C++.