UML Y JAVA PROGRAMACION ORIENTADA A OBJETOS. CLASE Implementación de un tipo de dato Una clase...

28
UML Y JAVA PROGRAMACION ORIENTADA A OBJETOS

Transcript of UML Y JAVA PROGRAMACION ORIENTADA A OBJETOS. CLASE Implementación de un tipo de dato Una clase...

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 -