uml y java
Post on 13-Jan-2016
68 Views
Preview:
DESCRIPTION
TRANSCRIPT
UML Y JAVAPROGRAMACION ORIENTADA A OBJETOS
CLASE
Implementación de un tipo de datoUna clase sirve tanto de módulo como de tipo
• Tipo: Descripción de un conjunto de objetos (equipado con ciertas operaciones)
• Modulo: Unidad de composición de software
Cada clase:• Se define en un archivo independiente• Se carga en memoria cuando se necesita
public class MiClase{
…}
OBJETO
Instancia de una clase:Unidad atómica que encapsula estado y comportamiento
• Un objeto puede caracterizar una entidad física
• Todos los objetos son instancia de una clase• Todos los objetos de una misma clase
comparten ciertas características: comportamiento y atributos
Todo objeto tiene:• Identidad (puede distinguirse de otros objetos)• Estado (datos asociados a el)• Comportamiento (puede hacer cosas)
Objeto =Identidad + Estado + Comportamiento
Identidad: • Es independiente de su estado• No cambia durante la vida del objeto
Estado:
Esta dado por los valores de sus atributos- Cada atributo toma un valor en un dominio- El estado del objeto evoluciona con el tiempo- Los atributos de un objeto no deben ser
manipulables directamente por el resto de los objetos.
- Se protegen los datos de accesos indebidos- Se distingue entre interfaz de implementación- Se facilita el mantenimiento dfel sistema
Comportamiento
Los métodos definen el comportamiento del objeto
• Agrupan competencias• Describen acciones
Nota: Relación competencia estado: Un avión no puede aterrizar si no esta en vuelo
Representación grafica de una clase
• Una clase se representa con un rectángulo dividido:• Nombre de la clase• Atributos• Operaciones
public class Cuenta{….}
Cuenta
public class Cuenta{private double balance; //saldoprivate double limit; //límite
}
Cuenta
-balance:double-limit:double
public class Cuenta{private double balance;
//saldoprivate double limit;
//límitepublic void ingresar(…)..public void retirar(…)…}
Cuenta
-balance:double-limit:double
+Ingresar():void+retirar():void
public class Cuenta{ private double balance; //saldo private double limit; //límite
public void ingresar(double cantidad) { balance=balance+cantidad; } public void retirar(double cantidad) { balance=balance-cantidad; }}
Cuenta
-balance:double-limit:double
+Ingresar(double cantidad ):void+retirar(double cantidad):void
RELACIONES ENTRE CLASES
DIAGRAMAS UML
Las relaciones existentes entre las clases nos indican como se comunican los objetos de esas clases entre si.
Los mensajes navegan por relaciones existentes entre las distintas clases
Existen distintos tipos de relaciones:
• Asociacion (conexion entre clases)• Dependencia (relacion de uso)• Generalizacion/especializacion (relaciones de
herencia)
Asociación
Es una relación estructural, la cual describe relación entre objetos.
Cliente Dirección
Vive en
Cuenta Cliente
* Titular 1
Cuenta Cliente
* Balance 1
+ingresar()+Retirar()
-balance-Limite-fecha
--nombre-apellido-direccion
Unidireccional
bidireccional
Cuenta Dinero
* Balance 1
+ingresar()+Retirar()
Cuenta
+ingresar()+Retirar()
-balance: Dinero
class Cuenta{ private Dinero balance;
public void ingresar (Dinero cantidad);{balance +=cantidad;}
public void retirar (Dinero cantidad);{balance-=cantidad;}
public Dinero getSaldo() {
return balance; }}
Multiplicidad Sginificado
1 Uno y solo uno
0..1 Cero o uno
N..M Desde N hasta M
* Cero o varios
0..* Cero o Varios
1..* Uno o varios (al menos uno)
Profesor Departamento
1 0..1
Profesor Departamento
* 1
Cliente Cuenta
0..* 1..*
Todo departamento tiene un directorUn profesor puede dirigir un departamento
Todo profesor pertenece a un departamentoA un departamento pueden pertenecer varios profesores
Relación opcionalUn cliente puede o no ser titular de una cuenta
Relación obligatoriaUna cuenta ha de tener un titular como mínimo
• AgregaciónCasos particulares de asociacionesRelación entre un todo y sus partes
Polígono Puntocontiene
0..1 3..*
• Composición
Ventana
Cabecera
Panel ScrollBar
Ventana
-titulo:Cabecera-Cuerpo: Panel-barra[2]: ScrollBar
11
0..21
10..1
titulo
cuerpo
barra
• Dependencia
EcuaciónMath
-coeficientes[3]
+ resolver() + pow()+sqrt()
Herencia (generalización y especialización)
Empleado
Profesor Admin.
NIVELES DE ENCAPSULACION
Visibilidad Significado Java
PúblicaSe puede acceder al miembro de la clase desde cualquier lugar
public +
Protegida
Solo se puede acceder al miembro de la clase o desde una clase que herede de ella
protected #
PrivadaSolo puede acceder al miembro de la clase desde la propia clase
private -
top related