290 likes | 490 Views
UML Y JAVA. PROGRAMACION ORIENTADA A OBJETOS. CLASE. Implementación de un tipo de dato Una 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.
E N D
UML Y JAVA PROGRAMACION ORIENTADA A OBJETOS
CLASE Implementación de un tipo de dato Unaclasesirvetanto de módulocomo de tipo • Tipo: Descripción de un conjunto de objetos (equipado con ciertasoperaciones) • Modulo: Unidad de composición de software
Cada clase: • Se define en un archivo independiente • Se carga en memoria cuando se necesita
publicclassMiClase { … }
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
publicclass Cuenta { …. } Cuenta
publicclass Cuenta { private double balance; //saldo private double limit; //límite } Cuenta -balance:double -limit:double
publicclass Cuenta { private double balance; //saldo private double limit; //límite public void ingresar(…).. public void retirar(…)… } Cuenta -balance:double -limit:double +Ingresar():void +retirar():void
publicclass 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 relacionesexistentes entre lasclasesnosindicancomo se comunican los objetos de esasclases entre si. Los mensajesnaveganporrelacionesexistentes entre lasdistintasclases
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. Dirección Cliente Vive en
Unidireccional +ingresar() +Retirar() Cliente Cuenta Cliente Cuenta * Balance 1 * Titular 1 -balance -Limite -fecha --nombre -apellido -direccion bidireccional
Cuenta -balance: Dinero +ingresar() +Retirar() Dinero Cuenta +ingresar() +Retirar() * Balance 1
class Cuenta { private Dinero balance; public void ingresar (Dinerocantidad); { balance +=cantidad; } public void retirar (Dinerocantidad); { balance-=cantidad; } public DinerogetSaldo() { return balance; } }
1 0..1 Profesor Departamento Todo departamento tiene un director Un profesor puede dirigir un departamento * 1 Profesor Departamento 0..* 1..* Cliente Cuenta Todo profesor pertenece a un departamento A un departamento pueden pertenecer varios profesores Relación opcional Un cliente puede o no ser titular de una cuenta Relación obligatoria Una cuenta ha de tener un titular como mínimo
Agregación Casos particulares de asociaciones Relación entre un todo y sus partes Polígono Punto contiene 0..1 3..*
1 1 • Composición -titulo:Cabecera -Cuerpo: Panel -barra[2]: ScrollBar barra titulo 1 0..2 cuerpo 0..1 1 Ventana Cabecera Panel ScrollBar Ventana
Dependencia -coeficientes[3] Ecuación Math + pow() +sqrt() + resolver()
Herencia (generalización y especialización) Empleado Profesor Admin.