Paso de Diagrama de clases a JavaParte 1
Clara Patricia Avella Ibez
Tunja Boyac ColombiaDocente [email protected]
De Diagrama de clases a Java Nuestro objetivo en este momento es pasar el siguiente diagrama de clases a cdigo Java
VehiculoPersona
- docId: String- nombre: String- apellido: String- fechaNac: String- gnero: char
+crearPersona(docN:String, nombreN: String, apellidoN: String, fechaNacN:String, generoN: char, vehiculo:Vehiculo): void
tiene 1- marca: String- referencia: String- modelo: int- placa: String- color: String- valor: int
Por ahora veremos cmo se realiza el
manejo de una relacin de ASOCIACIN con una
multiplicidad de 1
+crearVehiculo(marcaN:String, referenciaN: String, modeloN: int, placaN:String, colorN: String, valorN: int): void+cambiarValor(valorNuevo: int): void+calcularImpuesto(void): double
Recordemos que cada objeto de la clase Persona conoce a 1 objeto de
la clase Vehculo. Esto se da porque cada persona tiene un vehculo (en nuestro ejemplo)
Observemos que la clase Persona conoce
a la clase Vehiculo(por la direccin de la
relacin de asociacin) pero la clase Vehiculo no conoce a la clase
persona
Se lee: Una persona tiene 1 vehculo
De Diagrama de clases a Java
Vehiculo
- marca: String- referencia: String- modelo: int- placa: String- color: String- valor: int
Como la clase Vehiculo no conoce a ninguna clase, veamos cmo se convierte a cdigo Java esta clase
(el nombre de la Clase y los atributos por ahora, porque los
mtodos los veremos ms adelante)
public class Vehiculo{private String marca;private String
referencia;private int modelo;private String placa;private String color;private int valor;
}
public significa que la clase es pblica (se puede tener acceso a ella desde
otras clases de la aplicacin)
class: indica a Java que es una clase
Clase en UMLCdigo java de la clase (sin
incluir los mtodos an)
Nombre de la clase seguida de la llave
de apertura al inicio {
La clase debe tener una llave de cierre }al final para indicar que ah termina el cdigo de la clase
Nombre
Atributos
Operaciones
Mtodos
Empieza con maysculaSingularEl nombre es el mismo del archivo fsico con extensin .java
Son variables de tipos bsicos de datos o de otras ClasesEmpiezan con minscula si es ms de una palabra usar
mayscula en letra inicial de cada palabra diferente a la primera.Evitar usar _ (raya al piso)
Segmento de cdigo secuencial que ejecuta una tarea especficaConocidos como procedimientos o funciones en programacin
estructurada. Los mtodos casi siempre se invocan con un objeto y aplicalas instrucciones sobre el objeto con el cual se invoca.
Pueden o no tener parmetros (los parmetros son valores que entran almtodo).
Pueden o no retornar o devolver un valor
Constantes
Tienen asignado un valor que no cambia durante la ejecucin delprograma.
Se declaran con mayscula sostenidaEjemplo static final int IVA_TIPO1 =16;
Utilizan _ cuando est conformado su nombre por ms de una palabra.
Declaracin de clases en Java Tambin debemos tener en cuenta los siguientes aspectos con el fin cumplir con estndares de codificacin y buenas prcticas de programacin
Declaracin de Clases en JavaModificador de la clase
public: visible por otras clasesabstract: clase abstracta que no se puede instanciar .
Atributos
Mtodos
modificador class NombreDeLaClase {
modificador tipoDeDato nombreAtributo;
modificador static final tipoDeDato nombre=valor;
Ver siguiente diapositiva}
Constantes
Accesibilidad de los atributos y constantespublic: es accesible por cualquier objeto dentro yfuera de la clase.private: slo es accesible dentro de la clase donde esdeclaradaprotected: es accesible dentro de la clase donde esdeclarada y desde las clases derivadas (subclases oclases hijas) cuando hay herencia.final : para definir constantesstatic: para declarar atributos , constantes o mtodosde clase
Tipos de modificadores para
atributos, constantes y mtodos
Declaracin de Clases en Java
Mtodos
modificador tipoRetorno nombreDelMtodo (tipoDatoParametro(s) parametro(s) ) {cuerpo del mtodo
}
Accesibilidad de los mtodospublic: es accesible por cualquier clase.private: slo es accesible dentro de la clase dondees declaradoprotected: es accesible dentro de la clase dondees declarado y desde las clases derivadas(subclases o clases hijas) cuando hay herencia.static: es un mtodo de clase. No requiere de unobjeto para invocarse.
Tipo de dato que retorna el mtodoSe escribe void si no retorna un valor
De Diagrama de clases a Java
Tenga presente los siguientes aspectos
Java es sensible a maysculas y minsculas, es decir, no es lo mismo escribir vehiculo que
Vehiculo
Evite incluir ees o tildes en los nombres de clases, mtodos,
atributos, variables y constantes
Lo nico que debe empezar con maysculas en Java es el
nombre de la clases, lo dems empieza con minscula
Ejemplos:calcularSalario() para un mtodotelefonoCasa para un atributo
Si necesita declarar un atributo, variable o mtodo que tenga
ms de dos palabras, escriba la letra inicial de la segunda o
siguientes palabras con mayscula
No se deben utilizar palabras reservadas (ej: public, class, for, if,
etc.) para nombrar clases, variables, atributos, constantes o mtodos
Creacin de proyectos en Java Ahora pasaremos el cdigo en Eclipse
Una vez que est ubicado en Eclipse, seleccione en el
men: File- New Java Project
Creacin de proyectos en Java Escriba el nombre que quiere
asignarle al proyectoEn este caso el proyecto que
vamos a crear se llamaejemplo1
Por default se asigna el JRE (Java Runtime Environment) que se instal previamente.
D clic en Finish para confirmar la creacin de proyecto
Creacin de proyectos en Java En la ventana de Package Explorer
aparece el proyecto con una carpeta llamada src (source ) donde se van a guardar los
archivos .java o clases
Aparece el JRE o biblioteca de Java que inc luye clases que ya
vienen construidas en Java y que podemos utilizar en los
programas que elaboremos
Si no aparece la ventana PackageExplorer, hgala visible haciendo
clic en el men superior: Window show View - Package Explorer
Creacin de proyectos en Java Ahora crearemos la clase
Vehiculo que trabajado en este material
Nos ubicamos sobre el paquete src y hacemos clic derecho para que nos aparezca la
ventana ubicada en el centro
Hacemos clic en New y seleccionamos Class
Creacin de clases en Java Aparece el paquete (carpeta) donde va a
ubicarse el archivo con la clase a crear
Si se quiere ubicar la clase en otro paquete dentro del paquete src, podemos
escribir el nombre del paquete en este espacio. Si se deja en blanco crea la clase en un paquete al cual le asigna el mismo
nombre del proyecto.En este caso le vamos a dar el nombre
unico
Se escribe el nombre de la clase. Para nuestro ejemplo Vehiculo
Recuerde que los nombres de las clases inician con mayscula
Se marcan los modificadores de la clase. Por default es public. Vamos a
dejarlo as ya que la clase que vamos a crear es pblica
Hacemos clic en Finish para confirmar la clase a crear
Creacin de clases en Java
Se crea el paquete unico que
configuramos en la ventana de creacin
de la clase
Dentro del paquete unicocrea el archivo Vehiculo.java que corresponde al archivo
fsico que se genera al crer la clase
Observe:
En la ventana del centro aparece una pestaa con el cdigo fuente generado al
crear la clase
Creacin de clases en Java Recordemos que esta es la clase
Vehiculo definida en el diagrama de
clases
Vehiculo
- marca: String- referencia: String- modelo: int- placa: String- color: String- valor: int
El smbolo menos (modificador de atributos) del
diagrama de clases se convierte en private en cdigo
java.Esto significa que a los
atributos solo se pueden acceder directamente dentro
de la clase
Escribimos en Java los atributos de la clase (tengamos cuidado de
dejar el cdigo dentro de los corchetes de la clase {}
Tenga presente que en el diagrama de clases UML se escribe primero el nombre del atributo y despus de los dos puntos
el tipo de dato, pero en Java primero va el tipo de dato y despus el nombre del
atributo, seguido de punto y coma ;
Creacin de clases en Java VehiculoPersona
- docId: String- nombre: String- apellido: String- fechaNac: String- gnero: char
+crearPersona(docN:String, nombreN: String, apellidoN: String, fechaNacN:String, generoN: char, vehiculo:Vehiculo): void
tiene 1- marca: String- referencia: String- modelo: int- placa: String- color: String- valor: int
+crearVehiculo(marcaN:String, referenciaN: String, modeloN: int, placaN:String, colorN: String, valorN: int): void+cambiarValor(valorNuevo: int): void+calcularImpuesto(void): double
En cdigo Java la relacin de asociacin se convierte en un
atributo para la clase de la cual sale la relacin, en este caso para la clase
Persona.
Veamos el cdigo fuente de la clase Persona en la siguiente diapositiva
Retomando el diagrama de clases, recordemos que la clase Persona conoce a la
clase Vehiculo, es decir que la relacin de asociacin nos indica que cada objeto de la
clase Persona tiene un objeto de la clase Vehiculo
Creacin de clases en Java De la misma manera que se cre la clase Vehiculo, se crea la
clase Persona
Se escriben los atributos propios de clase con su
modificador, tipo de dato y nombre
Como la relacin de asociacin se convierte en
atributo, el tipo de dato del atributo ser el nombre de la Clase con la cual se tiene
la relacin
El tipo del atributo es Vehiculo (nombre de la
clase)El nombre del atributo en este caso es vehiculo (con
minscula porque es el atributo)
A la izquierda de la definicin deatributos aparecen bombillos amarillosque significan Warning (mensaje deprevencin). En este caso nos indicaque no ha sido utilizado ninguno de losatributos definidos. Cuandoadicionemos los mtodos se soluciona.esto
Diagrama de objetos Para entender mejor lo que significa que un objeto tenga atributos que son a su vez objetos de otra clase, pensemos en el ejemplo que estamos trabajando.
La siguiente es una imagen que nos muestra los objetos que existiran en el mundo computacional si queremos representar a una persona con docId (documento de identidad): 345, nombre: Carlos, apellido: Surez, fecha de nacimiento: 27/12/1990 y gnero: m, que a su vez tiene (es propietaria) el vehculo con marca: Renault, referencia: logan, modelo: 2009, placa: GRS123 y color: gris
p: Persona
docId: 345nombre: Carlosapellido: SurezfechaNac: 27/12/1990genero: mvehiculo:
v: Vehiculo
marcaRenaultreferencia: Loganmodelo: 2009placa: GRS123color: Gris
Esta caja representa a un objeto llamado
v de la clase Vehiculo
Esta caja representa a un
objeto llamado p de tipo Persona
El objeto v de la clase Vehiculo es el
dato que ira asignado al atributo vehiculo del objeto
p de la clase Persona
Este es el DIAGRAMA DE OBJETOS deUML y nos ayuda a entender mejor losobjetos involucrados en el modelocomputacional y sus relaciones
FechaEmpleado
- cedula: String- nombre: String- apellido: String- genero: char- salario: int
Fecha de nacimiento 1- dia: int- mes: int- anio: int
mtodosmtodos
Fecha de ingreso 1
public class Fecha{private int dia;private int mes;private int anio;
}
public class Empleado{private String cedula;private String nombre;private String apellido;private char genero;private int salario;private Fecha fechaNac;private Fecha fechaIng;
}
Atributos propios de la clase
Atributos que salen de las relaciones
Ejemplos Diagrama de clases a java
EditorialLibro
- isbn: String- titulo: String- anio: int- precio: int
Pertenece a 1- codigo: int- nombre: String- anio: int
mtodosmtodos
public class Editorial{private int codigo;private String nombre;private int anio;
}
public class Libro{private String isbn;private String titulo;private int anio;private int precio;private Editorial editorial;
}
Ejemplos Diagrama de clases a java
Fecha
Persona
- cedula: String- nombre: String- apellido: String- genero: char
Fecha de nacimiento 1- dia: int- mes: int- anio: int
mtodos
mtodos
Ciudad
- codigo: int- nombre: String- indicativo: int
mtodos
ciudad de nacimiento 1
ciudad de residencia 1
public class Persona{private String cedula;private String nombre;private String apellido;private char genero;private Fecha fechaNac;private Ciudad ciudadNac;private Ciudad ciudadRes;
}
public class Fecha{private int dia;private int mes;private int anio;
}
public class Ciudad{private int codigo;private String nombre;private int indicativo;
}
Ejemplos