Documentos de Académico
Documentos de Profesional
Documentos de Cultura
}
Java Bsico (Saludo)
Qu es un objeto?
Qu es un objeto?
Objetos del mundo real comparten tres caractersticas:
estado o estructura: por ejemplo, en un coche el n de marchas, la
velocidad actual, el fabricante, el modelo, los aos del vehculo,
la marcha actual, etc...
comportamiento: por ejemplo, un coche puede arrancar, acelerar,
frenar, cambiar marcha, etc....
identidad : aquello que distingue a un objeto de todos los dems, por
ejemplo, si la estructura de un coche es su marca y modelo, es
posible que haya dos Citron DS3 que no son el mismo coche.
Qu es un objeto?
Los objetos software se utilizan para:
representar objetos del mundo real.
en un juego de carreras de coches, los coches del mundo real se podran
representar mediante objetos software.
en una aplicacin de dibujo, las figuras geomtricas (polgonos, rectas,...)
se podran representar mediante objetos software.
en una aplicacin de gestin de personal de una empresa, los
trabajadores de la empresa se podran representar mediante objetos
software.
representar conceptos abstractos.
en interfaces grficas de usuario, es habitual representar con objetos
(llamados eventos) las acciones realizadas por el usuario (ratn y
teclado).
Qu es un objeto?
Objetos software tambin tienen esas caractersticas:
estado: se almacena en un conjunto de variables.
comportamiento: se implementa con mtodos. Un mtodo es una
funcin (subrutina, subprograma, procedimiento).
identidad : garantizada por los sistemas de programacin orientada
a objetos (POO).
Qu es un mensaje?
Qu es un objeto?
Los objetos software se comunican mediante paso de mensajes.
Los mensajes se componen de 3 elementos
destinatario del mensaje (Objeto llamante)
el nombre del mtodo a ejecutar
los parmetros (si existen) del mtodo
Qu es una clase?
Modelemos: Coche
Abstraccin y Encapsulamiento
La abstraccin consiste en extraer los aspectos esenciales de una entidad e
ignorar sus propiedades accidentales, es una herramienta en el proceso de
creacin del modelo a partir de un problema real que est determinada por los
siguientes factores:
Identificacin de clases: los conceptos que tienen entidad en s
mismos, no dependen de otros, se pueden describir, comprender
y analizar pueden abstraerse como una clase.
El objetivo del modelo:
determina tanto el grado de detalle como la informacin
relevante.
Ejemplos:
Aplicacin de macroeconoma: los empleados de una empresa pueden no ser
importantes como individuos porque slo interese su comportamiento
global como plantilla; habr una clase plantilla pero no una clase
persona.
Aplicacin de nminas: necesita manipular la informacin de cada persona de
manera independiente; habr una clase persona.
Java Bsico (Abstraccin y Encapsulamiento)
Abstraccin y Encapsulamiento
El encapsulamiento es el proceso de almacenar en un mismo compartimento
los elementos de una abstraccin que constituyen su estructura y su
comportamiento; sirve para separar la interfaz contractual de una
abstraccin y su implantacin (Booch)
Qu es la herencia?
Herencia
La herencia es el mecanismo que permite definir una clase a partir de otra clase
(superclase o clase padre), de manera que la subclase hereda la estructura
(estado) de la superclase a travs de las variables, y hereda el comportamiento a
travs de los mtodos.
Herencia
Habitualmente una clase hija aumenta o redefine la estructura y el
comportamiento de su superclase, digamos que especializa a la clase padre.
Ejemplo: Se define la superclase Reloj con variables para almacenar la
hora y la fecha actuales, y los mtodos que permiten fijar la hora y
fijar al fecha.
Podriamos construir la clase hija RelojDespertador a partir de Reloj
utilizando la herencia.
La clase RelojDespertador aumenta el comportamiento de la clase
Reloj ya que es capaz de emitir una alarma a una hora previamente
prefijada, para ello, la clase RelojDespertador aumenta la
estructura con una variable para almacenar la hora de la alarma,
otra para alamacenar el estado de la alarma (activada/desactivada)
y los mtodos que permiten fijara la hora de la alarma y activarla o
desactivarla.
Herencia
La herencia genera una jerarqua de generalizacin/especializacin
en la que una clase hija especializa el comportamiento o la estructura
ms general de su clase padre.
La especializacin consistir en el aumento de la estructura y/o el
comportamiento, su redefinicin o su aumento y redefinicin.
La relacin de herencia modela la relacin semntica es un
ejemplo: un Reloj Despertador es un Reloj
un Coche es un Automvil.
Herencia
Herencia
Se pueden distinguir distintos tipos de herencia en cuanto al
nmero de superclases de una subclase:
Herencia simple : una subclase hereda solamente de una superclase.
una clase hija solo tiene un padre.
Herencia mltiple: una subclase hereda de ms de una superclase.
una clase hija tiene ms de un padre.
Este tipo de herencia es conceptualmente correcta pero introduce
ciertas complejidades en los lenguajes de programacin.
Por ejemplo, puede ocurrir que una clase herede de dos superclases
que tienen atributos o mtodos con el mismo nombre. Esta colisin de
nombres se resuelve de distinta manera en los lenguajes orientados a
objetos:
en Java no se permite la herencia mltiple ,
en C++ s se permite (Especificacin de mtodo llamante).
Herencia
Es fundamental sealar que la herencia no se limita a un nmero
determinado de niveles por lo que todas los objetos de una
aplicacin heredarn de las superclases ms altas de la jerarqua
de las que hereden directa o indirectamente.
Herencia
Qu es un Overcraft?
Qu es el polimorfismo?
Polimorfismo
Para poder definir el polimorfismo hemos de definir antes que es el tipado
dinmico de elementos (Enlace dinmico).
Esto quiere decir que el tipo de una variable, de un atributo o de una expresin
se conoce en tiempo de ejecucin y no en tiempo de compilacin.
Polimorfismo
Es la caracterstica ms potente de estos lenguajes que nace de la
interaccin de la herencia y el enlace dinmico.
Respecto al enlace dinmico:
Es importante sealar que esta tcnica tiene inters cuando variables
de un tipo pueden almacenar objetos de otros tipos.
Esto slo est permitido en programacin orientada a objetos cuando
la variable que almacenar objetos de distintos tipos es de una clase
ms general.
De manera formal se define como: Ante una misma signatura de un mtodo, este
puede presentar diferentes implementaciones.
Polimorfismo
Es la caracterstica ms potente de estos lenguajes que nace de la
interaccin de la herencia y el enlace dinmico.
Respecto al enlace dinmico:
Es importante sealar que esta tcnica tiene inters cuando variables
de un tipo pueden almacenar objetos de otros tipos.
Esto slo est permitido en programacin orientada a objetos cuando
la variable que almacenar objetos de distintos tipos es de una clase
ms general.
De manera formal se define como: Ante una misma signatura de un mtodo, este
puede presentar diferentes implementaciones.
Polimorfismo
Un poco ms
Relaciones entre objetos:
Se puede modelar las relaciones que se identifiquen entre las
clases. Estas relaciones pueden distinguirse por su significado o
semntica.
Un poco ms
Composicin
Es una relacin de tipo todo-parte ms fuerte que la agregacin.
Es similar a las relaciones de composicin fsicas.
Los tiempos de vida de las partes y el todo coinciden.
Una parte no puede pertenecer a dos composiciones al mismo tiempo.
El todo es responsable de la creacin y de la destruccin de las partes.
Por ejemplo: El coche tiene un volante.
Dependencia
Es un aspecto semntico que se puede identificar en muchos tipos de
relaciones y se refiere al hecho de que los cambios en unos objetos
afectan a otros.
Un poco ms
Variables miembro de una relacin y clases de asociacin: de
forma similar a la manera en la que las variables miembro de una
clase describen su estructura, hay ocasiones en las que existe
cierta informacin relevante de una relacin entre clases
Las relaciones pueden especificar variables miembro para contener esta
informacin.
En este caso, puede resultar conveniente, definir una clase para contener esa
estructura
A estas clases se las conoce como clases de asociacin
Como por ejemplo: En una biblioteca en la que existen Libros y Socios, para
modelar un prstamo de un libro a un socio, tiene mucho sentido crear
la clase Prestamo con los metodos y atributos propios de un prestamos
como por ejemplo la fecha de vencimiento.
Un poco ms
UML: Lenguaje universal de modelado, o como poner de manera grfica todo lo
que hemos visto hoy.
Como por ejemplo: