Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tema 2
Prof. Domingo Hernández
Tópicos del Día
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
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.
Introducción al diseño OxO
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.
Representar mediante
Usuario
abstracción
Programador Interpreta
Programa
•Abstracción.
•Ocultamiento de la información.
•Modularidad.
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 sólo
aproximadamente conectados.
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.
Diferencia entre la
programación convencional
Dato 2
Dato 1
Procedimiento
2
Dato 4
Procedimiento
1
Procedimiento
Dato 3 3
M1
INVOCA 4 M4 DATO 2 M2
M3
M1
INVOCA 1
M4 DATO 1 M2
M3
M1
M4 DATO 3 M2
INVOCA 3
M3
Diccionario ( ) Interfase
Archivo Indizado Estructura de dato
Objeto del mundo
real Añadir palabra
Suprimir palabra Operaciones
Encontrar palabra
.
.
.
N ombr e T ur isol
D ir ección A v. L os pr ocer es
Cal le 22 entr e
Faci lidades Piscina, Sauna, G olf D ir ección A v. 2 y 3
Atributos
Pasos
Reparar
Cambio de posición
Conceptos básicos de la OxO
Clase polígono
Objetos polígonos
Atributos
Vértices
Aplicando Color del borde
abstracción Color de relleno
Operaciones
Dibujar
Borrar
Mover
CLASE N° 2
Conceptos básicos de la OxO
Notación para representar una clase.
Una clase se representa por una caja la cual puede tener 3
regiones.
La primera región contiene el nombre de la clase.
La segunda región contiene la lista de atributos, cada nombre
de atributo puede estar seguido por detalles opcionales tales
como tipo de atributo y valores por defectos.
La tercera región contiene los nombres de las operaciones.
Cada nombre de operación puede ser seguido por detalles
opcionales tales como listas de argumentos y tipos de
resultados. Los atributos y operaciones pueden o no mostrarse;
esto depende del nivel de detalle deseado.
Conceptos básicos de la OxO
Nombre de la clase
Nombre_operación1(lista de argumento):tipo_resultado1
Nombre_operación2 (lista de argumento):tipo_resultado2
.
.
.
Conceptos básicos de la OxO
Cómo se implanta una clase en C++
Class Nombre de la clase {
Miembros datos;
Miembros métodos;
};
Conceptos Básicos
class persona {
// Miembros 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.
Conceptos Básicos
class persona {
// Miembros 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.
Conceptos básicos de la OxO
Operaciones o 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.
Conceptos básicos de la OxO
¿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.
Conceptos básicos de la OxO
persona::persona(){
strcpy(nombre=new char [30],"Domingo");
strcpy(apellido=new char [30],"Hernandez");
strcpy(cedula=new char [13],"v.-8.333.439");
strcpy(sexo=new char [13],"Masculino");
fecha_nac.set("12","03","64");
strcpy(direccion=new char [80],"Calle 32 ");
}
Conceptos básicos de la OxO
persona::persona(char *nomb,char *apell, char *ced, char *sex, char *d,
char *m, char *a, char *direcc ){
strcpy(nombre=new char [strlen(nomb)+1],nomb);
strcpy(apellido=new char [strlen(apell)+1],apell);
strcpy(cedula=new char [strlen(ced)+1],ced);
strcpy(sexo=new char [strlen(sex)+1],sex);
fecha_nac.set(d,m,a);
strcpy(direccion=new char [strlen(direcc)+1],direcc);
}
Conceptos básicos de la OxO
.
Nombre del objeto Nombre del método(lista de parámetros);
CLASE N° 4
Conceptos básicos de la OxO
Polimorfismo
Polimorfismo significa que la misma
operación puede comportarse
diferentemente sobre distintas clases.
Por ejemplo, la operación “mover”
puede comportarse diferentemente
sobre una clase llamada Ventana y una
clase llamada Piezas_ajedrez.
Conceptos básicos de la OxO
Clasificación de Polimorfismo
Paramétrico
Universal I nclusión
Polimorfismo
Ad Hoc Overloading
Coerción
Conceptos básicos de la OxO
Polimorfismo Paramétrico: se obtiene cuando
una función trabaja uniformemente sobre un
rango de tipos; esos tipos normalmente
exhiben una estructura común y puede
comportarse de manera distinta para cada
tipo.
Polimorfismo de Inclusión: es un
polimorfismo utilizado por modelos de
subtipos y herencia. En este tipo de
polimorfismo un objeto puede pertenecer a
clases diferentes que no necesariamente son
disjuntas.
Conceptos básicos de la OxO
Polimorfismo por Overloading: en este
caso el mismo nombre se utiliza para
denotar diferentes funciones, y el
contexto se utiliza para decidir cuál
función se debería ejecutar para una
invocación particular del nombre.
Conceptos básicos de la OxO
de métodos).
Conceptos básicos de la OxO
Nombre
Persona Edad
Dirección
Sexo
Cargo
Profesión
Director
Simple
Múltiple
Conceptos básicos de la OxO
Nombre
Persona Edad
Dirección
Sexo
Cargo
Profesión
Director
Vehículos
Carros Bote
Anfibios
Conceptos básicos de la OxO
Encadenamiento Dinámico:
Una de las ventajas que promueve el estilo de
programación orientada por objeto es la
característica del encadenamiento dinámico, también
llamado encadenamiento tardío. En efecto, no se
tendrían sistemas orientados por objeto sin esa
poderosa capacidad.
Simplemente, la declaración encadenamiento
dinámico significa que el sistema encadenará una
rutina a un selector para un método particular que
está implantado sobre un objeto clase.