Taller Evaluación por competencias. Universidad de Boyacá
6 Curso de POO en Java - clases y objetos
1. Clases y objetos
Clara Patricia Avella Ibáñez
Tunja – Boyacá – Colombia
Docente universitaria
cpavella@gmail.com
2. Clases y objetos
Clase
Concepto: Una clase es la abstracción
de las propiedades y operaciones o
acciones que ejecutan los objetos del
mundo real.
Concepto: Los objetos son
instancias de una clase
Objeto
Después de identificar los requerimientos de una aplicación, debemos
identificar las clases y los objetos necesarios para construir la aplicación,
así que vamos a ver qué son clases y objetos.
En términos
coloquiales la
CLASE es como si
fuera una plantilla
que sirve para
crear los objetos
Es decir, las unidades
que existen en el
mundo real de una
clase específica.
Una similitud es la siguiente:
La clase es como un molde para hacer
tortas y todas las tortas hechas con el
molde son los objetos
3. Clases y objetos
Clase Objetos de la clase
Los objetos que existen en el mundo real pueden ser conceptuales o
físicos. Este es un ejemplo de objetos físicos.
Veamos los siguientes ejemplos de clases y objetos
Vehículo
Marca
Referencia
Modelo
Placa
Color
Valor
Características
de la clase
Nombre de
la clase
Marca: Chevrolet
Referencia: Aveo
Modelo: 2012
Placa: CDW152
Color: Rojo
Valor: $20,000,000
Marca: Renault
Referencia: Clio
Modelo: 2010
Placa: DMK789
Color: Verde
Valor: $15,000,000
Objeto 1 Objeto 2
Marca: Ford
Referencia: Fiesta
Modelo: 2013
Placa: AYR548
Color: Azul
Valor:$35,000,000
Objeto 3
Cada objeto tiene valores propios para cada una de las
características de la Clase
4. Clases y objetos
Clase Objetos de la clase
Ahora veamos un ejemplo de objetos conceptuales
Cuenta
bancaria
Número
Titular
Tipo
Saldo
Características
de la clase
Nombre de
la clase
Número: 45878
Titular: Sandra Parra
Tipo: Ahorros
Saldo: 500,000
Objeto 1 Objeto 2 Objeto 3
Número: 75369
Titular: Pedro Torres
Tipo: Corriente
Saldo: 1,800,000
Número: 85214
Titular: Luz Gómez
Tipo: Ahorros
Saldo: 120,000
Los objetos conceptuales existen en el mundo real pero por no son
tangibles.
Las características de las clases que se presentan en los ejemplos son
solo algunas, porque pueden tener muchas más.
5. Clases y objetos
Clase Servicios
Las clases no solo tienen características,
también tienen servicios, por ejemplo:
Cuenta
bancaria
Número: 85214
Titular: Luz Gómez
Tipo: Ahorros
Saldo: 120,000
Acciones que se
pueden realizar
sobre los
objetos de la
clase Consignar
Retirar
Abonar intereses
Cobrar comisión mensual
Etc…
Vehículo
Calcular impuesto anual
Cambiar el valor
Matricular ante tránsito
Pagar comparendo
Etc…
6. Clases y objetos
Recordemos
nuestro proceso
para desarrollar
una aplicación de
software:
Primero identificamos los
alcances del proyecto o
dominio del problema
(requerimientos)
Ahora debemos
identificar las
clases y los
objetos
involucrados en
el mundo del
problema
7. Clases y objetos
Estos dos pasos del proceso los vamos a ver con un ejemplo:
Vamos a construir una aplicación que nos permita crear un vehículo que pertenece
a una persona, así que debe permitir crear la persona, también se debe poder
cambiar el valor del vehículo porque este se va desvalorizando con el tiempo y
finalmente la aplicación debe permitir que se calcule el valor a pagar como
impuesto anual, que corresponde al 2% del valor del vehículo.
Los datos del vehículo son: Marca, referencia, modelo, placa, color, valor
Los datos de la persona son: número de documento de identidad, nombre,
apellido, fecha de nacimiento, género.
1. Identificamos los
requerimientos de la aplicación
(para este ejercicio, se
identifican los requerimientos
funcionales)
Crear vehículo
Crear persona
Cambiar valor de vehículo
Calcular impuesto
8. Clases y objetos
2. Elaboramos el
diagrama de casos de
uso
Crear vehículo Crear persona
Cambiar valor
de vehículo
Cambiar valor
de vehículousuario
3. Especificamos los
requerimientos
Nombre R1 – Crear vehículo
Resumen Permite adicionar a la aplicación los datos básicos de un vehículo
Entradas Marca, referencia, modelo, placa, color, valor
Resultado Un vehículo es creado en la aplicación
Nombre R2 – Crear persona
Resumen Permite adicionar a la aplicación a la persona propietaria del vehículo
Entradas Número de documento de identidad, nombre, apellido, fecha de
nacimiento, género, vehículo
Resultado La persona propietaria del vehículo es adicionada a la aplicación
Nombre R3 – Cambiar valor vehículo
Resumen Asigna un nuevo valor al vehículo cuando este cambia
Entradas Nuevo valor del vehículo
Resultado El valor anterior del vehículo es actualizado por el nuevo valor
Nombre R4 – Calcular impuesto
Resumen Realiza las operaciones necesarias para obtener el valor que se debe pagar por como impuesto
anual del vehículo. El impuesto es el 2% del valor del vehículo.
Entradas Ninguno
Resultado Calcula y muestra el valor que se debe pagar por impuesto del vehículo
Hasta este paso hemos
identificado el dominio
del problema
9. Clases y objetos
4. Identificamos las entidades involucradas en el mundo
del problema (vida real) y sus características
Entidad Características Tipo de dato * Ejemplo
Vehículo Marca
Referencia
Modelo
Placa
Color
Valor
Cadena de caracteres
Cadena de caracteres
Entero
Cadena de caracteres
Cadena de caracteres
Entero
Renault
Clio
2010
DHU457
Rojo
15000000
Persona Doc. de identidad
Nombre
Apellido
Fecha de nacimiento
Género
Cadena de caracteres
Cadena de caracteres
Cadena de caracteres
1026513858
Carlos Andrés
Parra Jiménez
27/01/1984
M
*Los tipos de datos hacen referencia a la clase de valores que pueden
tener las características.
Nos detendremos un momento en recordar los tipos de datos
10. Clases y objetos
Los tipos de datos más comunes en programación son:
Cadena de
caracteres
Conformados por varios caracteres alfa-numéricos seguidos.
En programación, por lo general se representan entre comillas dobles.
Ejemplos:
“Sandra Lopez”
“Calle 12 #23-45”
“7452685 ext 1201”
Caracter
Corresponden a cada uno de los dígitos (0 a 9), letras y símbolos que
conforman las palabras. Se representan en programación con comilla sencilla.
Ejemplos:
‘a’
‘<‘
‘#’
‘5’
11. Clases y objetos
Los tipos de datos más comunes en programación son:
Entero
Corresponden a valores numéricos positivos o negativos que no tienen
fracción decimal. Ejemplos:
25
0
-152
Real
Corresponden a valores numéricos positivos o negativos que tienen fracción
decimal. Ejemplos:
265.25
-45.7
-0.4778
Lógicos
Son valores que solo pueden tener dos estados: verdadero o falso. Ejemplos:
true
false
12. Clases y objetos
5. A partir de las entidades identificamos
las clases y sus atributos.
Clase Atributos Tipo de dato Objetos
Vehículo Marca
Referencia
Modelo
Placa
Color
Valor
Cadena de caracteres
Cadena de caracteres
Entero
Cadena de caracteres
Cadena de caracteres
Entero
“Renault”
“Clio”
2010
“DHU457”
“Rojo”
15000000
Persona Doc. de identidad
Nombre
Apellido
Fecha de nacimiento
Género
Cadena de caracteres
Cadena de caracteres
Cadena de caracteres
Cadena de caracteres
Caracter
“1026513858”
“Carlos Andrés”
“Parra Jiménez”
“27/01/1984”
‘M’
Las entidades del mundo real se
convierten en clases en el mundo
de la programación, de la misma
manera las características se
llaman atributos y los servicios se
llaman métodos
13. Clases y objetos
Clase
Nombre
Atributos
Métodos
Una vez identificadas las clases, se modela la solución de la aplicación
utilizando el DIAGRAMA DE CLASES de UML.
En el diagrama de clases se dibuja una caja por cada clase, recordando
que la clase tiene los siguientes componentes:
Nombre
- atributo1: tipo de dato
- atributo2: tipo de dato
- atributo3: tipo de dato
…
- atributoN: tipo de dato
+ método1(parámetros): tipo de dato de retorno
+ método2(parámetros): tipo de dato de retorno
…
+ métodoN(parámetros): tipo de dato de retorno
14. Clases y objetos
Relación de asociación
Las clases tienen relaciones con otras clases y estas relaciones también se
incluyen en el diagrama de clases.
Por ahora veremos la relación de ASOCIACIÓN, aunque existen más tipos
de relaciones (las estudiaremos más adelante, cuando avancemos en el
curso).
ClaseB
atributos
métodos
ClaseA
atributos
métodos
Se representa con una flecha
Cada objeto de la ClaseA conoce un objeto de la ClaseB, pero no lo contrario
15. Clases y objetos
Continuando con nuestro ejemplo de la aplicación del vehículo, el diagrama
que representa las clases identificadas es el siguiente:
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 lo general en el diagrama de clases se
utiliza el tipo de dato del lenguaje en el que
se va a desarrollar la aplicación.
En java los tipos básicos de datos son:
Cadena de carácter: String
Caracter: char
Entero: int
Real: double
Lógico: boolean
En este ejemplo la
relación de
ASOCIACIÓN se lee:
“Cada persona tiene
un vehículo”
+crearVehiculo(marcaN:String,
referenciaN: String, modeloN: int,
placaN:String, colorN: String, valorN:
int): void
+cambiarValor(valorNuevo: int): void
+calcularImpuesto(void): double
Más adelante
veremos cómo
se interpretan
los métodos
16. Clases y objetos
Retomando
nuestro proceso
para desarrollar
una aplicación de
software:
Con el diagrama de clases
elaborado, cumplimos
con esta etapa
Ahora podemos
pasar a escribir
el código fuente
en Java
(siguiente tema)
17. Fuentes bibliográficas
• [1] Academia SAI de Sun Microsystems (link no disponible actualmente)
https://sailearningconnection.skillport.com
• [2] Fundamentos de Programación. Aprendizaje activo basado en casos.
Jorge A. Villalobos y Ruby Casallas. Pearson educación. 2006.