Professional Documents
Culture Documents
Las personas tienen una idea clara de lo que es un objeto: conceptos adquiridos
que nos permiten sentir y razonar acerca de las cosas del mundo. Un objeto
podra ser real o abstracto, por ejemplo una organizacin, una factura, una figura
en un dibujador, una pantalla de usuario, un avin, un vuelo de avin, etc.
Tipos de Objetos
As, un tipo de objeto es una categora de objeto, mientras que un objeto es una
instancia de
un tipo de objeto. En el mundo de las bases de datos existen los tipos de entidad,
como cliente o empleado.
Existen muchas instancias de cada tipo de entidad (como Juan Prez o Jos
Martnez para el tipo de entidad empleado). Del mismo modo, en OO se define
tipos de objetos e instancias de tipo de objeto. Sin embargo, el trmino objeto
tiene diferencias fundamentales con el trmino entidad, ya que la entidad slo se
refiere a los datos, mientras que objeto se refiere a los datos y a los mtodos
mediante los cuales se controlan a los propios datos. En OO, la estructura de
datos y los mtodos de cada tipo de objeto se manejan juntos. No se puede tener
acceso o control de la estructura de datos excepto mediante los mtodos que
forman parte del tipo de objeto.
Mtodos
Los mtodos especifican la forma en que se controlan los datos de un objeto. Los
mtodos
en un tipo de objeto slo hacen referencia a la estructura de datos de ese tipo de
objeto. No
deben tener acceso directo a las estructuras de datos de otros objetos. Para
utilizar la estructura de datos de otro objeto, deben enviar un mensaje a ste. El
tipo de objeto empaca juntos los tipos de datos y su comportamiento.
Un objeto entonces es una cosa cuyas propiedades estn representadas por tipos
de datos y su comportamiento por mtodos.
Un mtodo asociado con el tipo de objeto factura podra ser aquel que calcule el
total de la factura. Otro podra transmitir la factura a un cliente. Otro podra
verificar de manera peridica si la factura ha sido pagada y, en caso contrario,
aadir cierta tasa de inters.
Al definir una clase debo especificar los datos que contiene (atributos) y el
cdigo que opera sobre ellos (mtodos).
CONSTRUCTORES EN JAVA
3. No retorna ningn valor (Ni void), por lo cual no debe especificarse ningn tipo
de dato.
4. Debe declararse como public, slo en casos realmente extraordinarios ser de
otro tipo.
Ejemplo
A continuacin crearemos una clase denominada Persona, que nos permite crear
objetos del tipo de dicha clase. Todo objeto de tipo Persona estar definido por
dos campos: nombre (tipo String) y edad (tipo entero), y admitir un mtodo:
getNombre(). Al realizar la invocacin nombreDelObjeto.getNombre ()
obtendremos el atributo nombre del objeto.
La clase tiene dos constructores. Qu significado tiene esto? Pues que
podremos crear personas de dos maneras distintas:
Se usa para hacer referencia a cualquier miembro del objeto actual, para
diferenciar variables de instancia de variables locales y para invocar un constructor
dentro de otro constructor.
Ejemplo 3
Sobrecarga de Mtodos
Ejercicios propuestos
Disee una clase colegio, cuyos atributos sean nombre del profesor, nmero de
materias y nombre del estudiante. Se deben crear dos constructores uno que
permita posteriormente visualizar por medio de objetos el nombre del profesor y
del estudiante, y otro constructor que permita visualizar los tres atributos de la
clase. Implemente los mtodos necesarios. Teniendo en cuenta que si el nmero
de materia es superior a 5 se debe imprimir un mensaje de error.
HERENCIA
En esta estructura jerrquica, cada clase tiene slo una clase padre. La clase
padre de cualquier clase es conocida como su superclase. La clase hija de una
superclase es llamada una subclase.
Ahora creamos el mtodo main para imprimir los datos de las clase creadas:
Ejercicios propuestos
Empleado
Atributos:
Mtodos:
- Imprimir los datos del empleado por pantalla (utilizar salto de lnea \n para
separar los atributos.
- Un mtodo que permita aumentar el salario en un porcentaje que sera pasado
como parmetro al mtodo.
- Mtodos:
- Constructor con y sin parmetros de entrada.
Se deben de crear clases para cada tipo de especie, y para las especies ms
comunes que el programador quiera definir.
El usuario final debe tener la potestad de crear todos los animales (instancias) que
desee, y diferenciarlas de acuerdo a algn identificador.
POLIMORFISMO
Definimos la clase numero y las clases hijas Numero positivo y Numero negativo
Las clases hijas implementan los mtodos numero prximo, en la primera clase se
define un contador incremental, en la segunda clase (numero negativo) se toma
como referencia un contador decremental.
Otra cosa que puede verse en este ejemplo es que al imprimir los objetos positivos
y negativos se llama automticamente al mtodo toString (), es el modo en el
que Java imprime sus objetos en pantalla. Y el aprovechamiento del mecanismo
de herencia, en la programacin del mtodo toString () que retorna el valor de
numero como un String, es decir, algo que puede imprimirse fcilmente. Al
llamarlo en un NumeroPositivo, como este no lo tiene programado, se ejecuta el
que esta definido en la clase padre Numero. Al llamarlo en un NumeroNegativo
tambin se llama al de la clase padre.
Polimorfismo por Enlace dinmico
Esto permite invocar operaciones en objetos obviando el tipo actual de stos hasta
el momento de ejecutar el cdigo. O sea, nos permite definir elementos como un
tipo e instanciarlos como un tipo heredado. Pero qu utilidad tiene obviar el tipo
de un objeto para luego tomar esta decisin?.
Gracias a que en java la definicin de los tipos de objetos se puede producir por
enlazado posterior (late binding), no nos debe preocupar a qu tipo de elemento le
paso un mensaje, ya que el compilador tomar la decisin sobre qu objeto
ejecutar qu mtodo de acuerdo a la forma de crear la instancia.
Se debe tener por lo menos una relacin de herencia que permita determinar un
tipo base para la declaracin, sea cual sea el subtipo que se instancie. Veamos un
ejemplo que nos aclare un poco las cosas:
Vemos que el mtodo muvete llama al mtodo mover de un mamfero y aunque
no sabe con qu clase de mamfero trata, funciona y se llama al mtodo
correspondiente al objeto especfico que lo llama (es decir, primero un gato y
luego un perro). Si no existiera el enlace dinmico, tendramos que crear un
mtodo muevete para los mamferos de tipo Gato y otro para los de tipo
Perro.
EJERCICIOS PROPUESTOS
DIAGRAMAS DE CLASE
Clases
Notacin de Clase
Para modelar un diagrama de clases UML se deben tener en cuenta los siguientes
aspectos:
- privado
+ pblico
# protegido
~ de paquete
Ejemplo:
Asociacin
Una asociacin implica que dos elementos del modelo tienen una relacin
usualmente implementada como una variable de instancia de una clase. Este
conector puede incluir roles nombrados en cada extremo, cardinalidad, direccin y
restricciones. Una asociacin es el tipo de relacin general entre elementos. Para
ms de dos elementos, un elemento de la caja de herramientas de representacin
diagonal tambin se puede usar. Cuando se genera cdigo para diagramas de
clase, las asociaciones se convierten en variables de instancia en la clase de
destino.
Una asociacin (relacin entre dos clases) se representa como una lnea continua
entre dos clases, y puede tener el nombre de la relacin sobre esta lnea. Ejemplo:
En el ejemplo anterior cada Avin tiene una relacin con Piloto, pero tambin cada
Piloto tiene relacin con Avin. Esta es una relacin en ambos sentidos.
En este ejemplo un Pasajero conoce el Avin (o aviones) con el cual viaja, pero el
Avin no tiene ninguna relacin con los Pasajeros.
Agregacin
Las agregaciones se usan para describir elementos que estn compuestos de
componentes ms pequeos. Las relaciones de agregacin se muestran por una
punta de flecha con forma de diamante apuntando hacia el destino o clase padre.
En este caso tenemos una clase empresa que agrega una clase cliente y una
clase empleados.
Composicin
Los componentes constituyen una parte del objeto compuesto. De esta forma, los
componentes no pueden ser compartidos por varios objetos compuestos. La
supresin del objeto compuesto conlleva la supresin de los componentes. El
smbolo de composicin es un diamante de color negro colocado en el extremo en
el que est la clase que representa el todo (Compuesto).
Un objeto Empresa est a su vez compuesto por uno o varios objetos del tipo
empleado.
La herencia se representa con una lnea continua que va de la clase hija a la clase
padre, y que termina en un tringulo vaco. Ejemplo: