28
UML Y JAVA PROGRAMACION ORIENTADA A OBJETOS

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

Embed Size (px)

Citation preview

Page 1: 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

UML Y JAVAPROGRAMACION ORIENTADA A OBJETOS

Page 2: 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

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

Page 3: 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

Cada clase:• Se define en un archivo independiente• Se carga en memoria cuando se necesita

Page 4: 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

public class MiClase{

…}

Page 5: 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

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

Page 6: 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

Todo objeto tiene:• Identidad (puede distinguirse de otros objetos)• Estado (datos asociados a el)• Comportamiento (puede hacer cosas)

Page 7: 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

Objeto =Identidad + Estado + Comportamiento

Identidad: • Es independiente de su estado• No cambia durante la vida del objeto

Page 8: 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

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

Page 9: 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

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

Page 10: 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

Representación grafica de una clase

• Una clase se representa con un rectángulo dividido:• Nombre de la clase• Atributos• Operaciones

Page 11: 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

public class Cuenta{….}

Cuenta

Page 12: 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

public class Cuenta{private double balance; //saldoprivate double limit; //límite

}

Cuenta

-balance:double-limit:double

Page 13: 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

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

Page 14: 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

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

Page 15: 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

RELACIONES ENTRE CLASES

DIAGRAMAS UML

Page 16: 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

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

Page 17: 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

Existen distintos tipos de relaciones:

• Asociacion (conexion entre clases)• Dependencia (relacion de uso)• Generalizacion/especializacion (relaciones de

herencia)

Page 18: 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

Asociación

Es una relación estructural, la cual describe relación entre objetos.

Cliente Dirección

Vive en

Page 19: 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

Cuenta Cliente

* Titular 1

Cuenta Cliente

* Balance 1

+ingresar()+Retirar()

-balance-Limite-fecha

--nombre-apellido-direccion

Unidireccional

bidireccional

Page 20: 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

Cuenta Dinero

* Balance 1

+ingresar()+Retirar()

Cuenta

+ingresar()+Retirar()

-balance: Dinero

Page 21: 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

class Cuenta{ private Dinero balance;

public void ingresar (Dinero cantidad);{balance +=cantidad;}

public void retirar (Dinero cantidad);{balance-=cantidad;}

public Dinero getSaldo() {

return balance; }}

Page 22: 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

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)

Page 23: 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

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

Page 24: 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

• AgregaciónCasos particulares de asociacionesRelación entre un todo y sus partes

Polígono Puntocontiene

0..1 3..*

Page 25: 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

• Composición

Ventana

Cabecera

Panel ScrollBar

Ventana

-titulo:Cabecera-Cuerpo: Panel-barra[2]: ScrollBar

11

0..21

10..1

titulo

cuerpo

barra

Page 26: 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

• Dependencia

EcuaciónMath

-coeficientes[3]

+ resolver() + pow()+sqrt()

Page 27: 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

Herencia (generalización y especialización)

Empleado

Profesor Admin.

Page 28: 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

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 -