JavaPooIntro - universitariouhv

JAVA 2
Programación Orientada a
LI & MSC OSCAR RAMIREZ CORTES
Objetos
Fundamentos del desarrollo de
software orientado a objetos

Hasta algunos años atrás, el
desarrollo de software tenía como
base el modelo procedural.

El MP tiene como base la ejecución
secuencial de rutinas o funciones,
ordenadas de acuerdo con la manera
en que se desea que funcione la
aplicación.

La Orientación a Objetos es una
técnica más simple y natural para el
proceso de análisis de problemas y
construcción de aplicaciones.
LI & MSC OSCAR RAMÍREZ CORTÉS
Modelo Procedural vs Orientado a
Objetos
<<datos>>
<<datos>>
Cliente
Pedido
NuevoPedido
Cliente_id
Nombre
Dir
Tel
Pedido_id
Cliente_id
Recibo
Total
IVA
CrearPedido()
AgregarProd()
EliminarProd()
FinalizarPedido()
MP: Áreas de memoria y
estructuras diferentes,
código secuencial
OO: Basado en la ejecución
de métodos, todo organizado
(funciones y datos en la
misma área)
<<inteligencia>>
<<datos>>
<<datos>>
Cliente
Pedido
Cliente_id
Nombre
Dir
Tel
Pedido_id
Cliente_id
Recibo
Total
IVA
CrearPedido()
FinalizarPedido()
<<inteligencia>>
AgregarProducto()
EliminarProducto()
<<inteligencia>>
LI & MSC OSCAR RAMÍREZ CORTÉS
Abstracción para Modelar

El proceso de abstracción consiste en comprender
un sistema concreto, físico o no, y crear un modelo
documentado y estandarizado que refleja su
comportamiento, en éste caso, para el área de
desarrollo de software.
LI & MSC OSCAR RAMÍREZ CORTÉS
Definiendo la Abstracción

Proceso de modelado de sistemas concretos o no,
que extrae de su contexto los principales objetos, y
los describe por medio de la discriminación de sus
propiedades y funcionalidades.
LI & MSC OSCAR RAMÍREZ CORTÉS
Los Objetos del Sistema

Son elementos conceptuales destacados por medio
del proceso de abstracción, sus características son:
A)
Propiedades (atributos): describen el objeto, sus
posibles estados y la función que desempeña en el
sistema.
B)
Funcionalidades (métodos): describen la acción
del objeto y representan su comportamiento
dentro del sistema.

Al definir un objeto, en realidad se crean Clases.
LI & MSC OSCAR RAMÍREZ CORTÉS
Clases

Modelos conceptuales a partir de los cuales se generan
instancias (copias) u objetos con la característica de
pasar a éste toda su descripción y funcionalidad.

Una Clases también es una “superclase” y los objetos
“subclases”.
LI & MSC OSCAR RAMÍREZ CORTÉS
Ejemplos


CLASE:
Atributos
Tipo
Tamaño
Color
Material
Código
Etc…



Atributos
Saldo
Límite
Intereses
Vencimiento
Etc…
Camisa
CLASE:
Funcionalidades
CubrirCuerpo
Lavarla
Plancharla
Venderse
Regalarse
Etc…
Cuenta Bancaria

Funcionalidades
Débito
Crédito
Consulta de saldo
Retiro
Etc…
LI & MSC OSCAR RAMÍREZ CORTÉS
Elementos de la POO

Clase  modelo para la creación de objetos.

Atributos Características.

Métodos  Funcionalidades.

Objetos Instancias de la clase.

UMLNotación para documentar aplicaciones POO.

Diagramas de claseModelos a programarse.
LI & MSC OSCAR RAMÍREZ CORTÉS
UML, Unified Modeling Language
Lenguaje de Modelado Unificado

Define modelos, una representación simplificada de
la realidad.

Es visual, toda su expresividad se basa en gráficos.

Lo componen un conjunto de diagramas cada uno
destinado a cubrir algún aspecto del software.
LI & MSC OSCAR RAMÍREZ CORTÉS
Diagramas de Clase
Nombre clase
Nombre
+/-Atributos
 Atributos (privados -)
+/-Métodos
Métodos 
(públicos + )
LI & MSC OSCAR RAMÍREZ CORTÉS
Tipos de Accesos a Clases, Atributos
y Métodos

+Públicos. Con acceso total a los
componentes.

-Privados. Limitado únicamente al área del
componente.
LI & MSC OSCAR RAMÍREZ CORTÉS
Tipos de Métodos

get consulta (Accesor)

set intercambio/mutación (Mutator)

Operaciones o funciones (Worker)

Constructores (Constructor)
LI & MSC OSCAR RAMÍREZ CORTÉS
Construyendo la primer aplicación
Cuenta
Nombre clase
-numero: int
Atributos  -saldo: double
(privados) -interes: double
-vencimiento: Date
+
+
Métodos  +
+
(públicos )
+
+
+
+
+
+
getInteres( ):double
getNumero( ): int
getSaldo( ): double
getVencimiento ( ): Date
setSaldo(in saldoE:double): void
setInteres(in intes:double): void
setNumero(in num: int): void
setVencimiento(in Fecha: Date): void
debito (in valor:double): void
credito(in valor: double):void




get consulta (Accesor)
set intercambio/mutación (Mutator)
de operaciones o funciones (Worker)
Constructores (Constructor)
LI & MSC OSCAR RAMÍREZ CORTÉS