Este documento introduce conceptos básicos de la programación orientada a objetos. Explica que la orientación por objetos organiza el software como una colección de objetos discretos que encapsulan datos y procesamiento. También define conceptos clave como clases, métodos, herencia y polimorfismo.
2. Índice
Introducción al diseño orientado por
objeto
Qué es la orientación por objeto
Diferencias entre la programación
convencional y la programación
orientada por objetos
Conceptos básicos
3. Introducción al diseño
orientado por objetos
El diseño orientado por objetos (DOO),
como otras metodología de diseños
orientados a la información crean una
representación del dominio del problema en
el mundo real y lo transforma en un
dominio de soluciones que es el software.
4. A diferencia de otros métodos, el DOO da como
resultado un diseño el cual interconexiona los
objetos de datos (elementos de datos) y las
operaciones de procesamiento, de forma tal que
encapsula la información y el procesamiento.
Este encapsulamiento es el paradigma
fundamental de la orientación por objetos.
5. Modelo de una tarea típica de
programación
Espacio del mundo real
Objetos reales
y actividades
Objetos abstractos y
operaciones en lenguaje de
programación
Objeto reales
(cambio de estado)
Datos e
información
Problema
Modelo
Programa
Algorítmo
Resultado
Usuario
Representar mediante
abstracción
Programador
Algorítmo del
mundo real
Resultado
Espacio del programa
Interpreta
6. Diseño Orientado por objeto
La naturaleza única del diseño orientado por objetos se
debe a su habilidad para construir basándose en tres
conceptos importantes del diseño del software:
•Abstracción.
•Ocultamiento de la información.
•Modularidad.
7. Qué es la orientación por
objeto
El término "orientación por objeto" significa que
organizaremos el software como una colección de
objetos discretos que incorporan tanto estructuras
de datos como procedimientos.
Esto contrasta con la programación convencional,
en la cual las estructura de datos y el
comportamiento están solo aproximadamente
conectados.
8. Qué es el desarrollo
Orientado por Objetos
El desarrollo orientado por objetos es una
nueva forma de pensar acerca del software
basado sobre abstracciones que existen en
el mundo real.
En este contexto, el desarrollo es referido a
la primera parte del ciclo de vida del
software: análisis, diseño e implantación.
9. Diferencia entre la
programación convencional
Procedimiento
1
Procedimiento
3
Procedimiento
2
Dato 1
Dato 3
Dato 2
Dato 4
M1
M3
M4 M2DATO 1
M1
M3
M4 M2DATO 3
M1
M3
M4 M2DATO 2
INVOCA 3
INVOCA 4
INVOCA 1
Fig. 2 Sistema convencional
Fig.3 Sistema Orientado por objeto
11. Conceptos básicos sobre la
Orientación por Objetos
¿ Qué es un Objeto ?
Un objeto es una entidad física o abstracta
que tiene un comportamiento antes ciertos
estímulos, tanto externos como de otros
objetos específicos que se encuentran
dentro del sistema.
12. ¿ Qué se puede considerar como objeto ?
-Persona
-Equipo Hardware
-Materiales
-Información
-Software
-Procesos
-Procedimientos
14. Identidad de un objeto
Cada objeto tiene su propia identidad que lo
distingue de los demás objetos. En otras
palabras, dos objetos distintos no son
iguales aunque todos los valores de sus
atributos sean idénticos.
15. Componentes para la construcción de Software
de un objeto.
Cuando un objeto se transforma en una
realización de software, consta de una interfaz,
una estructura de datos privada y unos procesos
llamados operaciones o métodos que son los
únicos que pueden transformar legítimamente la
estructura de datos.
16. Diccionario ( )
Archivo Indizado
Añadir palabra
Suprimir palabra
Encontrar palabra
.
.
.
Interfase
Estructura de dato
Operaciones
Objeto del mundo
real
Representación abstracta de un objeto
17. Tipos de objetos
1.- Objetos reales
1.1 Objeto físico: Son objetos extremamente
perceptibles
ejemplo(vista, olfato,gusto,oído)
1.2 Objetos psíquicos: Son internamente
perceptibles. Ejemplo:
dolor, sentimiento, imágenes.
2.- Objeto ideales no son perceptibles.
2.1 Relaciones o asociaciones entre objetos
2.2 Pensamientos
2.3 Matemáticos, lógicos semiótico
18. Clasificación:
El proceso de clasificación es el enfoque
central de la orientación por objeto y concierne a
la agrupación de objetos con propiedades
(estructuras de datos o atributos) y
comportamiento (operaciones) similares dentro de
una clase.
Una clase es la abstracción que describe
propiedades importantes para una aplicación.
19. Type Tipo_opcion(Piscina,Sauna,Tennis,Golf);
Class Hotel
Propiedades
Nombre: Cadena;
Dirección: Cadena;
Dueño: Compañia;
Director: Persona;
Facilidades: Set (Tipos_opcion):
Operaciones
Create ();
Reserva_hab(Habitación:integer;
Huesped:Person,
Fecha_llegada,
Fecha_partida:Tipo_fecha)
end Hotel.
20. Class Compañía
Propiedades
Nombre, Oficina_central, Teléfono: Cadena;
.........
Operaciones
..........
end Compañia.
Class Persona
Propiedades
Nombre, Dirección, Teléfono: Cadena;
.........
Operaciones
..........
end Persona.
21. La Pedregosa
Av. Los proceres
Instancia de Compañia
Instancia de Persona
Piscina, Sauna, Golf
Instancia Compañía
Nombre
Oficina_general
Teléfono
Turisol
Mérida
22454
Instancia Persona
Dirección
Pedro perez
Calle 22 entre
Av. 2 y 3
Instancia de Hotel
Dirección
Nombre
Dueño
Gerente
Facilidades
Nombre
Fig. 5 Ejemplo de la clase Hotel
22. Conceptos básicos de la OxO
Aplicando
abstracción
Atributos
Tamaño del marco
Tamaño de la rueda
Material
Engranaje
Material
Operaciones
Pasos
Reparar
Cambio de posición
23. Conceptos básicos de la OxO
Cómo se implanta una clase en C++
Class Nombre de la clase {
Miembros datos;
Miembros métodos;
};
24. class persona {
// Mienbros Datos o Estructura de datos de la clase
char nombre[15],apellido[15],cedula[15];
// Miembros Función o Métodos de la clase
public:
void presenta_valores();
void asigna_nombre(char *nombre_nuevo);
void asigna_apellido(char *apellido_nuevo);
void asigna_cedula(char *cedula_nueva);
void cumpleano();
}; // Observe que se debe finalizar con punto y coma.
25. class persona {
// Mienbros Datos o Estructura de datos de la clase
char *nombre,*apellido,*cedula;
// Miembros Función o Métodos de la clase
public:
persona(); // Constructor de la clase
~persona(); // Destructor de la clase
void presenta_valores();
void asigna_nombre(char *nombre_nuevo);
void asigna_apellido(char *apellido_nuevo);
void asigna_cedula(char *cedula_nueva);
void cumpleano();
}; // Observe que se debe finalizar con punto y coma.
26. Operaciones ó métodos
Una operación es una función o
transformación que puede ser aplicada sobre los
objetos en una clase. Por ejemplo: abrir, cerrar,
ocultar, desplegar, son operaciones sobre una clase
ventana.
Cada operación tiene un objeto destino con un
argumento implícito. El comportamiento de la
operación depende de la clase destino.
27. ¿ Cómo se declara una función miembro de la
clase ? (menos los constructores y destructores)
Tipo que devuelve nombre de la clase : : nombre
del método (Lista de parámetros ) {
cuerpo de la función o método
};
Los : : son conocidos como el alcance del
operador resolución, lo que indica al compilador
donde comienza la función.
32. Polimorfismo
Polimorfismo significa que la misma
operación puede comportarse
diferentemente sobre distintas clases. Por
ejemplo, la operación "mover" ejemplo
puede comportarse diferentemente sobre
una clase llamada Ventana y una clase
llamada Piezas_ajedrez.
33. Herencia
La herencia consiste en el compartir atributos y
métodos entre clases basándose en una relación
jerárquica.
Una clase puede definirse ampliamente y
redefinirse sucesivamente en subclases más
refinadas.
Cada subclase que se incorpora, hereda todas las
propiedades de su superclase y adiciona sus
propias y únicas propiedades.