Vous êtes sur la page 1sur 4

Clases y Objetos

Cada vez que se analiza un problema a resolver utilizando la computadora y en este caso
desarrollando una solucin con una herramienta Orientada a Objetos, el anlisis se debe
hacer sobre los objetos involucrados en la solucin y la interaccin que entre ellos existe.
El diseo orientado a objetos nos ayuda a construir un modelo de objetos para un sistema
que ser desarrollado. Un modelo de objetos especifica las clases, sus atributos y mtodos y
sus relaciones con otras clases.
Por ejemplo al hablar de clientes, artculos, proveedores, inmediatamente debemos analizar
cada uno por separado y la interaccin que entre ellos existe y sobre todo la que tiene
relacin al problema en cuestin. Analizando primero las piezas aisladas y luego entrelazando
sus relaciones.
Por ejemplo debemos tomar en cuenta primero las caractersticas que competen a los
artculos y sobre estas las que competen al problema en cuestin o posibles problemas
futuros que pudieran ser relacionados a los datos ahora analizados. Vienen a la mente sobre
el artculo: el nmero, el nombre, el precio, la cantidad en inventario, el proveedor, etc. As
mismo nos debemos preocupar por las conductas que reportan estos artculos, sobre todo las
que afectan a nuestro problema en cuestin, por ejemplo un artculo se da de alta en nuestro
inventario, tambin se vende, puede ser que se regrese por el cliente, puede ser que se
regrese por la empresa si es que esta en malas condiciones, etc.
De esta manera empezamos a definir las variables de instancia que contendr cada uno de
los objetos de todas las clases posibles que estamos analizando, y as de esa manera
tambin empezamos a definir los mtodos que hacen uso de esas variables de instancia y
que reflejan la problemtica analizada.
Una vez que tenemos las clases definida con sus caractersticas o atributos (variables) y sus
conductas (mtodos), entonces es que empezamos a desarrollar la aplicacin que har uso
de estas clases. Esto puede ser a travs de una aplicacin no grfica, una aplicacin grfica o
un applet.
A continuacin se presentan una serie de pasos necesarios para crear un modelo de objetos
a partir de la especificacin de un problema a resolver:
1. Identificar clases de objetos a partir de la especificacin del problema (ver
sustantivos y verbos). Una manera sencilla de hacer esto es empezar por identificar
las clases al analizar la descripcin textual en la especificacin del problema. En este
anlisis textual, los sustantivos y las frases de sustantivos nos ayudan a entender con
frecuencia los objetos y sus clases. Los sustantivos en singular ("cuenta", "carro" y
"alumno") y los sustantivos en plural ("puntos", "carros" y "cuentas") indican clases.
Los sustantivos propios ("la cuenta de Juan") y los sustantivos de referencia directa
II. Desarrollo de aplicaciones con interfaz
grfica y manejo de clases y objetos
("el individuo que tenia la cuenta") indican objetos.
2. Identificar relaciones entre clases. Aqu se sugiere que se cree una tabla n x n
donde n es el nmero de clases. Se deben nombrar las filas y las columnas con los
nombres de las clases y despus se debe escribir en cada celda de interseccin, una
relacin de asociacin, donde se define una especializacin, si es que la clase del
rengln es aun ms especializada que la clase de la columna, o se escribe una
generalizacin si la clase de la columna es una especializacin aun ms especfica que
la clase del rengln (vase ejemplo), si hay alguna relacin entre las clases se escribe
esta relacin.
3. Identificar los atributos de cada clase. Enumerar aqu aquellos datos propios de
cada una de las clases mencionadas.
4. Identificar los mtodos de cada clase. Aqu se deben de identificar las acciones
que deben ser realizadas por los objetos de la clase ya sea acciones que no tengan
relacin con otras clases o acciones en donde involucren otras clases, y asi modificar
mtodos en ambas clases.
5. Modelar el problema utilizando UML(Unified Modeling Language). La
modelacin del problema se hace despus de haber hecho estas asociaciones entre
clases. El propsito de este curso no es que definas la modelacin de las clases que
representan a un problema planteado, pero es importante que destaques las
relaciones entre clases para que ests preparado posteriormente en algn curso
adicional sobre modelacin de objetos.
A continuacin presentamos una manera en la que se pudieran establecer una relacin
especfica de un enunciado de "un cliente es una persona que tiene una o ms cuentas".
Persona Cliente Cuenta
Persona no generalizacin no
Cliente especializacin no
posee alguna
cuenta
Cuenta no X no
Cuando trabajamos con un problema especfico, en relacin a este curso, se debe trabajar
con los puntos 1, 3 y 4, para poder entonces crear las clases en Java, como hemos visto
anteriormente. Despus escribimos la aplicacin que utilice estas clases.
Definicin de una Clase
La definicin de una clase se entiende mejor al utilizar el diagrama de clase, que es la
notacin que se usa en UML. As como se muestra abajo, una clase est representada por un
rectngulo con tres secciones. La primera seccin es donde se define el nombre de la clase;
la segunda seccin describe los atributos de la clase y la tercera seccin es para los mtodos
de la clase.

Esto nos ayuda a entender visualmente la manera en la que una clase esta compuesta.
El tipo de una variable y el tipo de retorno de un mtodo estn especificados por dos puntos
( : ) seguidos por el nombre de un tipo. La especificacin de un atributo o mtodo comienza
con un smbolo que indica la vista de dicho atributo o mtodo:
- indica vista privada
+ indica vista pblica
La vista privada no permite que otras clases tengan acceso a este atributo o mtodo,
mientras que la vista pblica permite que otras clases tengan acceso a este atributo o
mtodo.
Normalmente, como lo hemos mencionado, los atributos se deben definir como privados, de
esta manera se maneja el concepto llamado como encapsulamiento, en el que el objeto
mantiene el control de la informacin que maneja. Los mtodos se definen comnmente
como pblicos, para que cualquiera pueda hacer uso de ellos, a menos que sean mtodos
privados definidos para algn clculo que ser propio de la clase donde se definen.
Los atributos privados son entonces utilizados (accedidos o modificados) a travs de mtodos
pblicos, el mtodo que sirve para tomar algn valor de un atributo privado es llamado de
acceso (accesor) y el que sirve para modificar un valor del atributo privado es llamado
modificador (mutator).
A continuacin mostramos la representacin de UML para la clase Alumno, en la que tenemos
tres atributos privados: matricula, nombre y saldo. Y los mtodos pblicos: mtodo de
acceso para matricula, nombre y saldo, mtodos modificadores para matrcula, nombre y
saldo. Definimos tambin un mtodo privado para hacer el clculo del saldo, y es privado
porque no requerimos usarlo fuera de la clase.


Clases de Envoltura (Wrapper Classes)
Existen una serie de clases llamadas clases de envoltura o wrapper classes, que son las
clases que utiliza Java para manejar los datos primitivos, pero a travs de objetos, es decir,
en la mayora de las clases de Java se tienen mtodos que utilizan objetos, son pocos los
mtodos o mtodos constructores que toman como parmetros los datos primitivos (int,
float, double, char, etc). Es por esto que en Java se han definido estas clases de envoltura.
Existe una clase de envoltura para cada diferente tipo de dato primitivo, dentro de ellas se
tienen una serie de constructores utilizados para crear objetos de la clase a partir de
diferentes valores primitivos.
Hasta ahora hemos utilizado mucho el mtodo parseInt y el mtodo parseDouble de las
clases Integer y Double correspondientemente, es importante que analices los constructores
que se tienen en cada una de estas clases, as como de las dems clases de envoltura para
que puedas utilizarlas eficientemente de acuerdo a tus necesidades.
Es importante que las consultes estas clases son:

Tipo de dato primitivo Clase de Envoltura (Wrapper Class)
Byte java.lang.Byte
Short java.lang.Short
Integer java.lang.Integer
Char java.lang.Char
Flota java.lang.Float
Double java.lang.Double
Bolean java.lang.Boolean

Vous aimerez peut-être aussi