Beruflich Dokumente
Kultur Dokumente
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 solo
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
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.
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 {
// 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.
Conceptos Básicos
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.
Conceptos básicos de la OxO
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.
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);
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"
ejemplo 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 cual
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.