![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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/24.jpg)
• 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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/25.jpg)
• 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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/26.jpg)
• 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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062307/551cf3e85503463f7a8b5547/html5/thumbnails/28.jpg)
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 -