Terminología Básica de La POO
Terminología Básica de La POO
PROGRAMACION
ORIENTADA A OBJETOS
INTEGRANTES:
HERNANDEZ MARTINEZ MANUEL
ANGEL BENITEZ HERNANDEZ
LEONARDO SAUCEDO JUAREZ
IRVIN JOHAN VAZQUEZ SORIANO
CLASES : CONCEPTO
COMO PLANTILLA
ENCAPSULAMIENTO,
ABSTRACCIÓN
Encapsulamiento Abstracción
El encapsulamiento es uno de los principios fundamentales de La abstracción implica ocultar los detalles complejos del
la programación orientada a objetos (POO). Consiste en: funcionamiento interno de un objeto o sistema, mostrando
Proteger los datos internos de un objeto al restringir el solamente lo esencial para su uso. Se enfoca en qué hace el
acceso directo desde el exterior. objeto, sin entrar en cómo lo hace.
Permitir el acceso o modificación de estos datos Ventajas de la abstracción:
únicamente a través de métodos específicos.} Simplificación: Reduce la complejidad para el usuario final.
Flexibilidad: Permite cambiar los detalles internos sin
Ventajas del encapsulamiento: afectar a los usuarios del objeto o sistema.
Seguridad: Protege los datos sensibles de modificaciones Facilita la colaboración: Los desarrolladores pueden
no controladas o accidentales. trabajar en diferentes niveles de abstracción sin interferir.
Modularidad: Facilita el mantenimiento del código, ya que
cada objeto maneja su propio estado interno.
Reutilización: Componentes encapsulados pueden usarse
en diferentes contextos sin riesgo de interferencias.
ATRIBUTOS
los atributos son aquellas caracteristicas
que se la asignan a un objeto o una clase,
cada objeto tiene un espacio de memoria
para cada atributo que se le asigna en un
determinado momento, para determinar
con que atributos contara cada uno, se
determinan mediante 4 principales clases
las cuales son entradas y salidas, variables
intermedias y constantes
CARACTERISTICAS DE
ATRIBUTOS
clase
public: Atributos accesibles desde fuera de la clase.
Cualquier código puede leerlos o modificarlos directamente.
private: Solo accesibles dentro de la clase. Se usan getters y
setters para acceder o modificar desde fuera.
protected: Como private, pero accesibles también en clases
hijas (herencia).
static: Atributo compartido por todas las instancias de la
clase. No depende de cada objeto.
const: Atributo que no cambia. Se asigna una vez (al crear el
ATRIBUTOS PUBLICOS, objeto) y ya no se puede modificar.
PRIVADOS Y
PROTECTED
SINTAXIS DE ATRIBUTOS
PRIVADOS Y PROTECTED
01 02
ESTATICOS Y
CONST
03 04
METODOS
CARACTERISTICAS EJEMPLOS
Permiten realizar acciones con los objetos de
Recuperar la información de un atributo almacenado
una clase Modificar el estado de un objeto
Representan el comportamiento de los objetos Enviar mensajes a un objeto para que realice una acción
Se programan con verbos Instanciar un objeto de una clase en la memoria de la
Pueden recuperar, modificar o crear objetos computadora
class Persona {
TIPO_DE_RETORNO NOMBRE_METODO(PARÁMETROS); public:
void saludar() {
cout << "Hola!" << endl;
}
int obtenerEdad() {
sintaxis return 25;
}
};
HOME ABOUT MORE
ENCAPSULAMIENTO,
ABSTRACCIÓN
Encapsulamiento Abstracción
El encapsulamiento es uno de los principios fundamentales de La abstracción implica ocultar los detalles complejos del
la programación orientada a objetos (POO). Consiste en: funcionamiento interno de un objeto o sistema, mostrando
Proteger los datos internos de un objeto al restringir el solamente lo esencial para su uso. Se enfoca en qué hace el
acceso directo desde el exterior. objeto, sin entrar en cómo lo hace.
Permitir el acceso o modificación de estos datos Ventajas de la abstracción:
únicamente a través de métodos específicos.} Simplificación: Reduce la complejidad para el usuario final.
Flexibilidad: Permite cambiar los detalles internos sin
Ventajas del encapsulamiento: afectar a los usuarios del objeto o sistema.
Seguridad: Protege los datos sensibles de modificaciones Facilita la colaboración: Los desarrolladores pueden
no controladas o accidentales. trabajar en diferentes niveles de abstracción sin interferir.
Modularidad: Facilita el mantenimiento del código, ya que
cada objeto maneja su propio estado interno.
Reutilización: Componentes encapsulados pueden usarse
en diferentes contextos sin riesgo de interferencias.
EJEMPLOS
CON ENCAPSULACIÓN (ORGANIZADO
Y CON CONTROL DE DATOS)
SIN ENCAPSULACIÓN #include <stdio.h>
(DESORGANIZADO Y SIN CONTROL DE
DATOS) typedef struct {
int edad;
} Persona;
#include <stdio.h>
HERENCIA Y
POLIMORFISMO
HERENCIA POLIMORFISMO
Permite a una clase heredar atributos y métodos de Permite que diferentes clases implementen el mismo método de
otra, promoviendo la reutilización de código y la maneras distintas. A través de este concepto, objetos de
diferentes clases pueden ser tratados de forma uniforme, lo que
creación de jerarquías. La clase hija puede extender
facilita la flexibilidad y escalabilidad del código. El polimorfismo se
o modificar el comportamiento de la clase padre, lo logra mediante la redefinición de métodos en las subclases o el
que facilita la organización y mantenimiento del uso de interfaces comunes. Ambos conceptos, herencia y
código. polimorfismo, permiten crear programas más modulares,
reutilizables y fáciles de mantener.
#include <stdio.h>
#include <string.h>
HOME ABOUT MORE
// Estructura base
typedef struct {
char sabor[20];
char tamaño[20]; EJEMPLOS
} Pastel;
void hacer_pastel(Pastel* p) {
printf("Haciendo pastel de %s, tamaño %s.\n", p->sabor, p->tamaño); #include <stdio.h>
}
// Estructura base con puntero a función
// Subclase typedef struct {
typedef struct { void (*hacer)(void*);
Pastel base; } Pastel;
char decoracion[30];
} PastelDeChocolate; void hacer_pastel_fresa(void* p) { printf("Haciendo
pastel de fresa.\n"); }
void decorar_pastel(PastelDeChocolate* p) { void hacer_pastel_choco(void* p) { printf("Haciendo
printf("Decorando con %s.\n", p->decoracion); pastel de chocolate.\n"); }
}
int main() {
int main() { Pastel fresa = {hacer_pastel_fresa};
PastelDeChocolate p = {{"chocolate", "grande"}, "crema"}; Pastel choco = {hacer_pastel_choco};
hacer_pastel(&p.base); fresa.hacer(&fresa);
decorar_pastel(&p); choco.hacer(&choco);
return 0; return 0;
} }
Herencia Polimorfismo
HOME ABOUT MORE
THANK YOU