Vous êtes sur la page 1sur 14

PROGRAMACIN ORIENTADA A OBJETOS

CONCEPTOS (I)

Objeto: todo es un objeto. Un objeto es una especie de variable optimizada, que nos permite representar un concepto de un problema dado y representarlo como un objeto en nuestra aplicacin. Los objetos se comunican por mensajes: Los programas construidos sern grupos de objetos enviando mensajes a otros para ordenar lo que se debe hacer. Datos propios: es posible crear nuevos tipos de objetos empaquetando objetos ya existentes. (P.ej.: Coche, formado por ruedas, motor, volante,) Cada objeto es de un tipo: una clase define el tipo de un objeto. (P.ej.: Clase enteros un_entero). Un objeto es una instancia de una clase determinada

CONCEPTOS (II)

Todos los objetos de un mismo tipo pueden recibir los mismos mensajes posibilidad de reutilizacin de cdigo. Clase Figura Clase Crculo Clase Cuadrado Clase Tringulo

Un objeto de la clase Crculo tambin es de la clase Figura . Est garantizado que un crculo recibir los mensajes de Figura.

Para un tramo de cdigo que se comunique con objetos de la clase Figura, sin realizar ningn tipo de cambio, tambin se podr utilizar dicho cdigo para objetos de la clase Crculo. mi_figura.dibujar();

CONCEPTOS (III)

Clase: una clase puede definirse como un conjunto de objetos que tienen las mismas caractersticas (DATOS) y los mismos comportamientos (FUNCIONES). Una clase es un tipo de dato.(P.ej.: un entero, que tiene unas determinadas caractersticas y unos determinados comportamientos) Al crear nuevas clases, estas se consideran como nuevos tipos de datos propios. Una vez definida una clase, ser posible crear tantos objetos de dicha clase como sea necesario. Circulo circulo_1, circulo_2; Circulo mi_nuevo_circulo;

CONCEPTOS (IV)

REUTILIZACIN(I)

Una vez creada una clase, esta se transforma en una unidad de cdigo til para el resto de programadores. En esto consiste la REUTILIZACIN. Es posible crear directamente un objeto de dicha clase:
Clase Motor mi_Motor; mi_Motor.arrancar();

Podemos tambin utilizar el objeto dentro de otra clase (Agregacin)


COCHE 1 MOTOR

Se interpreta como: Coche tiene 1 Motor

REUTILIZACIN(II)

Si es necesario crear un nuevo tipo/clase cuyo interfaz es similar a uno de una clase/tipo ya existente, resulta ms sencillo clonar dicha clase y aadirle nuevas propiedades a esta clase resultante.(Herencia)
VEHCULO
Se interpreta como: Es un como un

VEHCULO A MOTOR

VEHCULO SIN MOTOR

Puede tener propiedades de mbito PUBLICO, permitiendo que sean vista por los herederos, o PRIVADO, solo accesible para la propia clase

COCHE

AUTOBS

BICICLETA

CARACTERSTICAS(I)

Abstraccin: Nos permite representar una realidad compleja en funcin de un modelo simplificado. Seccionar nuestro cdigo en grupos de cdigo ms pequeo que, al unirlos, hacen el trabajo final (Divide y vencers) Encapsulacin:
Nos permite ocultar como est construido un objeto. Otros componentes de nuestro sistema no necesitan conocer los datos y el funcionamiento interno del objeto. Datos y funciones se empaquetan juntos. Los distintos componentes, al no poder acceder a sus partes internas, se comunican mediante mensajes. La encapsulacin se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dndole al programador acceso slo a lo que necesita. Podemos imaginar la encapsulacin como introducir el objeto dentro de una caja negra donde existen dos ranuras denominadas entrada y salida. Si introducimos datos por la entrada automticamente obtendr un resultado en la salida. No necesita conocer ningn detalle del funcionamiento interno de la caja.

CARACTERSTICAS (II)

Herencia: Permite que un objeto incorpore todo o parte de la definicin de otro objeto. (P.ej.: parte de la definicin de FELINO se corresponde con la definicin de MAMFERO). La herencia nos permite, entre otras cosas, evitar tener que escribir el mismo cdigo una y otra vez, puesto que al definir que una categora (que en programacin llamaremos clase) pertenece a otra, automticamente estamos atribuyndoles las caractersticas generales de la primera, sin tener que definirlas de nuevo. Polimorfismo: Propiedad que poseen algunas operaciones de tener un comportamiento distinto en funcin del objeto sobre el que se aplican. Esta propiedad indica la posibilidad de definir varias operaciones con el mismo nombre, diferencindolas nicamente en los parmetros de entrada. Dependiendo del objeto que se introduzca como parmetro de entrada, se elegir automticamente cual de las operaciones se va a realizar.

CLASE

Representacin de un tipo abstracto de datos. Contiene atributos (=datos) y mtodos (=operaciones). Instancias de las clases = objetos. Clase: define las propiedades y el comportamiento de un conjunto de objetos. class Empleado {
// Atributos (Datos): string nombre; int DNI; .............. // Mtodos (Operaciones): insertar_nombre(..); };

OBJETOS Y MENSAJES

OBJETO:

Instancia de una clase: ejemplos reales de la clase abstracta. Identificados por medio de un nombre. Estado del objeto: valores de sus atributos.

MENSAJE:
Solicitud a un objeto para invocar a uno de sus mtodos. Contiene: nombre del mtodo, y argumentos del mtodo. Ejemplo: empleado_1.insertarNombre(Jos Prez)

PROGRAMA
Conjunto de objetos interactuando. Los objetos reaccionan al recibir mensajes cambiando su estado.

ATRIBUTOS Y MTODOS
Campos de datos dentro de una clase: variables miembros o atributos de la clase. Operaciones con los datos de una clase: funciones miembros o mtodos de la clase. Los miembros de una clase (propiedades y mtodos) pueden ser:
Pblicos; se puede acceder a ellos desde fuera de la clase Privados; slo se puede acceder a ellos desde dentro de la clase

Para acceder a propiedades privadas de la clase se definen mtodos de acceso. Un miembro puede ser esttico, si pertenece a la clase en s y no a los objetos de la clase.

PAUTAS DE DISEO EN P.O.O.


Hacer una lista de todas las propiedades y mtodos que requiera el programa. Clasificar dichas propiedades y mtodos dentro de clases. Examinar las clases para ver las posibles relaciones de herencia. Comprobar que dentro de la estructura de clases todo encaja. Realizar un buen diseo supone: Ahorro e tiempo y esfuerzo en la fase de programar Cdigo resultante de mayor calidad: ms fcil de depurar y mantener

Vous aimerez peut-être aussi