Taller Evaluación por competencias. Universidad de Boyacá
8b Curso de POO en java - paso de diagrama clases a java 1
1. Paso de Diagrama de clases a Java
Parte 1
Clara Patricia Avella Ibáñez
Tunja – Boyacá – Colombia
Docente universitaria
cpavella@gmail.com
2. De Diagrama de clases a Java
Nuestro objetivo en este momento es pasar el siguiente diagrama de clases a código
Java
VehiculoPersona
- docId: String
- nombre: String
- apellido: String
- fechaNac: String
- género: 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
cómo se realiza el
manejo de una relación
de ASOCIACIÓN 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 Vehículo. Esto se da
porque cada persona tiene un
vehículo (en nuestro ejemplo)
Observemos que la
clase Persona conoce
a la clase Vehiculo
(por la dirección de la
relación de
asociación) pero la
clase Vehiculo no
conoce a la clase
persona
Se lee:
Una
persona
tiene 1
vehículo
3. 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 cómo se
convierte a código Java esta clase
(el nombre de la Clase y los
atributos por ahora, porque los
métodos los veremos más
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 pública (se puede
tener acceso a ella desde
otras clases de la
aplicación)
class: indica a Java
que es una clase
Clase en UML
Código java de la clase (sin
incluir los métodos aún)
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
código de la clase
4. Nombre
Atributos
Operaciones
ó
Métodos
Empieza con mayúscula
Singular
El nombre es el mismo del archivo físico con extensión .java
Son variables de tipos básicos de datos o de otras Clases
Empiezan con minúscula si es más de una palabra usar
mayúscula en letra inicial de cada palabra diferente a la primera.
Evitar usar _ (raya al piso)
Segmento de código secuencial que ejecuta una tarea específica
Conocidos como procedimientos o funciones en programación
estructurada. Los métodos casi siempre se invocan con un objeto y aplica
las instrucciones sobre el objeto con el cual se invoca.
Pueden o no tener parámetros (los parámetros son valores que entran al
método).
Pueden o no retornar o devolver un valor
Constantes
Tienen asignado un valor que no cambia durante la ejecución del
programa.
Se declaran con mayúscula sostenida
Ejemplo static final int IVA_TIPO1 =16;
Utilizan _ cuando está conformado su nombre por más de una palabra.
Declaración de clases en Java
También debemos tener en cuenta los siguientes aspectos con el fin cumplir
con estándares de codificación y buenas prácticas de programación
5. Declaración de Clases en Java
Modificador de la clase
public: visible por otras clases
abstract: clase abstracta que no se puede
instanciar .
Atributos
Métodos
modificador class NombreDeLaClase {
modificador tipoDeDato nombreAtributo;
modificador static final tipoDeDato nombre=valor;
Ver siguiente diapositiva
}
Constantes
Accesibilidad de los atributos y constantes
public: es accesible por cualquier objeto dentro y
fuera de la clase.
private: sólo es accesible dentro de la clase donde es
declarada
protected: es accesible dentro de la clase donde es
declarada y desde las clases derivadas (subclases o
clases hijas) cuando hay herencia.
final : para definir constantes
static: para declarar atributos , constantes o métodos
de clase
Tipos de
modificadores para
atributos, constantes
y métodos
6. Declaración de Clases en Java
Métodos
modificador tipoRetorno nombreDelMétodo (tipoDatoParametro(s) parametro(s) ) {
cuerpo del método
}
Accesibilidad de los métodos
public: es accesible por cualquier clase.
private: sólo es accesible dentro de la clase donde
es declarado
protected: es accesible dentro de la clase donde
es declarado y desde las clases derivadas
(subclases o clases hijas) cuando hay herencia.
static: es un método de clase. No requiere de un
objeto para invocarse.
Tipo de dato que retorna el método
Se escribe void si no retorna un valor
7. De Diagrama de clases a Java
Tenga presente los
siguientes aspectos
Java es sensible a mayúsculas y
minúsculas, es decir, no es lo
mismo escribir vehiculo que
Vehiculo
Evite incluir eñes o tildes en los
nombres de clases, métodos,
atributos, variables y constantes
Lo único que debe empezar con
mayúsculas en Java es el
nombre de la clases, lo demás
empieza con minúscula
Ejemplos:
calcularSalario() para un método
telefonoCasa para un atributo
Si necesita declarar un atributo,
variable o método que tenga
más de dos palabras, escriba la
letra inicial de la segunda o
siguientes palabras con
mayúscula
No se deben utilizar palabras
reservadas (ej: public, class, for, if,
etc.) para nombrar clases, variables,
atributos, constantes o métodos
8. Creación de proyectos en Java
Ahora pasaremos el código en Eclipse
Una vez que esté ubicado
en Eclipse, seleccione en el
menú: File- New – Java
Project
9. Creación de proyectos en Java
Escriba el nombre que quiere
asignarle al proyecto
En este caso el proyecto que
vamos a crear se llama
ejemplo1
Por default se asigna el JRE
(Java Runtime Environment)
que se instaló previamente.
Dé clic en Finish para confirmar
la creación de proyecto
10. Creación 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 Package
Explorer, hágala visible haciendo
clic en el menú superior: Window
– show View - Package Explorer
11. Creación 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
12. Creación 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 mayúscula
Se marcan los modificadores de la
clase. Por default es public. Vamos a
dejarlo así ya que la clase que vamos
a crear es pública
Hacemos clic
en Finish para
confirmar la
clase a crear
13. Creación de clases en Java
Se crea el paquete
unico que
configuramos en la
ventana de creación
de la clase
Dentro del paquete unico
crea el archivo Vehiculo.java
que corresponde al archivo
físico que se genera al crer la
clase
Observe:
En la ventana del centro
aparece una pestaña con el
código fuente generado al
crear la clase
14. Creación 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 símbolo menos –
(modificador de atributos) del
diagrama de clases se
convierte en private en código
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 código dentro de los
corchetes de la clase {}
Tenga presente que en el diagrama de
clases UML se escribe primero el nombre
del atributo y después de los dos puntos
el tipo de dato, pero en Java primero va el
tipo de dato y después el nombre del
atributo, seguido de punto y coma ;
15. Creación de clases en Java
VehiculoPersona
- docId: String
- nombre: String
- apellido: String
- fechaNac: String
- género: 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 código Java la relación de
asociación se convierte en un
atributo para la clase de la cual sale
la relación, en este caso para la clase
Persona.
Veamos el código 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 relación de asociación nos
indica que cada objeto de la
clase Persona tiene un
objeto de la clase Vehiculo
16. Creación 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 relación de
asociación se convierte en
atributo, el tipo de dato del
atributo será el nombre de
la Clase con la cual se tiene
la relación
El tipo del atributo es
Vehiculo (nombre de la
clase)
El nombre del atributo en
este caso es vehiculo (con
minúscula porque es el
atributo)
A la izquierda de la definición de
atributos aparecen bombillos amarillos
que significan Warning (mensaje de
prevención). En este caso nos indica
que no ha sido utilizado ninguno de los
atributos definidos. Cuando
adicionemos los métodos se soluciona.
esto
17. 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 existirían en el mundo computacional si
queremos representar a una persona con docId (documento de identidad): 345, nombre: Carlos, apellido:
Suárez, fecha de nacimiento: 27/12/1990 y género: m, que a su vez tiene (es propietaria) el vehículo con
marca: Renault, referencia: logan, modelo: 2009, placa: GRS123 y color: gris
p: Persona
docId: “345”
nombre: “Carlos”
apellido: “Suárez”
fechaNac:
“27/12/1990”
genero: ‘m’
vehiculo:
v: Vehiculo
marca“Renault”
referencia: “Logan”
modelo: 2009
placa: “GRS123”
color: “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 iría
asignado al atributo
vehiculo del objeto
p de la clase
Persona
Este es el DIAGRAMA DE OBJETOS de
UML y nos ayuda a entender mejor los
objetos involucrados en el modelo
computacional y sus relaciones
18. FechaEmpleado
- cedula: String
- nombre: String
- apellido: String
- genero: char
- salario: int
Fecha de nacimiento 1
- dia: int
- mes: int
- anio: int
métodos
métodos
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
19. EditorialLibro
- isbn: String
- titulo: String
- anio: int
- precio: int
Pertenece a 1
- codigo: int
- nombre: String
- anio: int
métodos
métodos
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
20. Fecha
Persona
- cedula: String
- nombre: String
- apellido: String
- genero: char
Fecha de nacimiento 1
- dia: int
- mes: int
- anio: int
métodos
métodos
Ciudad
- codigo: int
- nombre: String
- indicativo: int
métodos
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