Conceptos Básicos

Anuncio
Programación Orientada a Objetos
Conceptos Básicos de Objetos
Ing
Ing.. Julio Ernesto Carreño Vargas
MsC..
MsC
Conceptos Básicos
Las aproximaciones ADOO y POO, proveen a los
objetos como el principal medio para estructurar un
sistema
El mundo del problema se ve como objetos que
interactúan.
Modelar consiste en :
identificar qué objetos hay en el mundo del problema,
cómo son,
cómo se comportan y
cómo se relacionan.
Programación Orientada a Objetos
2
1
Objeto(1)
Un objeto representa una entidad física, conceptual ó
de software.
Es una manifestación concreta de una abstracción con
un límite bien definido y una identidad que encapsula
estado y comportamiento.
Un objeto puede :
modelar entidades del mundo real,
capturar abstracciones de fenómenos complejos,
representar artefactos de software (pilas, gráficos, …).
Programación Orientada a Objetos
3
Objeto(2)
Ejemplos:Estudiante, Profesor, Fecha,
Automóvil, Libro, Figura.
El objeto tiene como propósito promover la
comprensión del mundo real, y es la base de la
implementación.
Programación Orientada a Objetos
4
2
Comportamiento de los Objetos
El comportamiento de los objetos puede ser
descrito por una caracterización abstracta de su
interfaz (servicios que presta).
Por ejemplo los servicios del cajero:
Programación Orientada a Objetos
5
Clase
Describe un conjunto de objetos del mundo del
problema, que tienen :
las mismas características (atributos, propiedades)
y el mismo comportamiento (operaciones, métodos).
Estructura de software que especifica
determinado tipo de objeto.
Es una abstracción que enfatiza características
relevantes de un concepto del mundo real.
Las clases representan nuevos tipos de datos
Programación Orientada a Objetos
6
3
Representación Gráfica de una Clase
Programación Orientada a Objetos
7
Atributo
Propiedad del objeto
Determinan el estado del objeto
Son los datos que contiene y encapsula una
clase(ocultas al exterior) y se acceden por medio de
algún método
Es un valor de un dato que está almacenado en los
objetos de una clase
Los atributos son llamados variables de instancia
podrían verse como una variable global a toda la clase.
Programación Orientada a Objetos
8
4
Método(1)
Una operación que se podrá realizar sobre un
objeto
Definen el comportamiento de la clase
Servicios que ofrece la clase
Permiten cambiar el estado del objeto, esto es,
operan sobre los atributos.
Programación Orientada a Objetos
9
Método(2)
Los atributos son visibles en toda la clase
En cualquier método se puede hacer referencia a las
variables de instancia
Los métodos pueden tener variables locales
son visibles sólo dentro del método.
Programación Orientada a Objetos
10
5
Clases y Objetos(1)
Un objeto es una instancia de una clase con
valores concretos en sus atributos.
Los objetos son agrupados en clases.
Una clase es una definición abstracta de un
objeto
Una clase es una plantilla para crear objetos
Programación Orientada a Objetos
11
Clases y Objetos(2)
La noción de Clase viene de clasificación: esto
es, agrupar (en un conjunto) objetos (elementos)
que se comportan de la misma manera.
Todos los objetos de una clase tienen la misma
estructura (los mismos atributos), lo que varía
son los valores de dichos atributos
Programación Orientada a Objetos
12
6
Clases y Objetos(3)
Cuenta
Clase Cuenta
saldo
objCuenta1 : Cuenta
3 objetos de la clase Cuenta
Observe que todos tienen un saldo,
pero cada objeto con un valor diferente
objCuenta2 : Cuenta
saldo
saldo
500
9000
Programación Orientada a Objetos
objCuenta3 : Cuenta
saldo
15000
13
Visibilidad Atributos, Métodos
Hay tres tipos de visibilidades:
private (Privada): Indica que el atributo o el método
no puede ser visto y utilizado por objetos de clases
diferentes a la actual.
public (Pública): Indica que el atributo o el método
puede ser visto y utilizado por objetos de clases
diferentes a la actual.
protected
(Protegida): Esta visibilidad hace
referencia a estructuras con herencia, sólo es visible
por ella misma y por sus subclases
Programación Orientada a Objetos
14
7
Visibilidad
- Privado
+ Publico
# Protegido
Programación Orientada a Objetos
15
Ejemplo de Visibilidad
…
Service obj = new Service();
class Service {
public int memberOne;
private int memberTwo;
public void doOne() {
obj.memberOne = 10;
…
obj.memberTwo = 20;
}
private void doTwo() {
obj.doOne();
…
}
obj.doTwo();
}
…
Client
Programación Orientada a Objetos
Service
16
8
Visibilidad Clases
Las visibilidad pueden ser aplicada también a la
clase
Existe otra visibilidad que se aplica a paquetes
Un paquete es una colección de clases
Cuando se marca una clase con visibilidad de
paquete, se indica, que dicha clase puede ser vista
y/o utilizada por las clases del mismo paquete.
Programación Orientada a Objetos
17
Forma Básica Clase Java
Especifica que la clase forma
parte del paquete “conceptos”
import permite “reusar”
clases de otros paquetes.
Sección de atributos
visibles en toda la clase
Sección de métodos
Programación Orientada a Objetos
18
9
Paquetes
Los paquetes son una forma de organizar grupos
de clases. Un paquete contiene un conjunto de
clases relacionadas por finalidad ó funcionalidad.
Los paquetes resuelven el problema del conflicto
entre los nombres de las clases.
Al crecer el número de clases crece la probabilidad
de designar con el mismo nombre a dos clases
diferentes.
La siguiente declaración indica que la clase va a
pertenecer a un paquete llamado ventas
Programación Orientada a Objetos
19
Importar clases
La palabra reservada import permite utilizar clases de
otro paquete
Lo anterior no implica copiar el código de la clase
importada a la clase importadora
La anterior definición es equivalente a:
En los lenguajes POO se debe informar la
ubicación de los paquetes que se quieren importar:
classpath
Programación Orientada a Objetos
20
10
Clase Pública
El archivo en el disco se debe llamar “Orden.java”
Programación Orientada a Objetos
21
Clase Privada
Si no aparece
ningun
modificador de
visibilidad, la
clase sólo es
visible en el
directorio.
Programación Orientada a Objetos
22
11
Forma Básica de Atributos
Comentario del atributo para ser usado con javadoc
Visibilidad
•private
•public
•protected
•paquete
Tipo
•String
•int
•double
•float
•boolean
•…
Nombre dado a
la variable
Programación Orientada a Objetos
23
Propiedades this
this:
Es una referencia al objeto
(instancia de la clase) actual.
Programación Orientada a Objetos
24
12
Modificador
de
Visibilidad
•private
•public
•protected
•paquete
Forma Básica Métodos
Tipo de retorno
•void (no retorna valor)
•String
•int
•double…
Nombre del método
Lista de parámetros
Cuerpo del método,
incluido variables
locales y un return
al final si retorna
un valor ó sin return
si el retorno es void
Programación Orientada a Objetos
25
Tipos de Métodos
Existen varias clases especiales de métodos:
Constructores: método para crear un nuevo objeto de
la clase.
Destructores: método para eliminar un objeto de una
clase.
Modificadores: métodos para asignar el valor de un
atributo
Analizadores: métodos para recuperar el valor de un
atributo.
Programación Orientada a Objetos
26
13
Métodos Analizadores(accesors
Analizadores(accesors))
Por cada atributo de la clase existe un método get
que retorna el valor de dicho atributo
Programación Orientada a Objetos
27
Métodos Modificadores(mutators
Modificadores(mutators))
Por cada atributo de la clase existe un método set
que asigna un valor a dicho atributo
Programación Orientada a Objetos
28
14
Encapsulamiento de Atributos
Los objetos no deberían conocer detalles de
implementación de otros objetos.
Por ejemplo, un objeto, no debería modificar el
valor de un atributo de otro objeto.
Al definir la visibilidad de los atributos, esta
debe ser lo más restrictiva posible, esto es,
private. Los métodos modificadores y
analizadores son los únicos que pueden cambiar
ó retornar el valor de un atributo.
Programación Orientada a Objetos
29
Encapsulamiento de Atributos
Observe que el atributo
TotalDinero es privado
Para acceder al atributo
se hace a través de los
métodos getXXX y
setXXX
Programación Orientada a Objetos
30
15
Bibliografía
UML y patrones una introducción al análisis y diseño orientado a
objetos y al proceso unificado. Larman, Craig
Paul Deitel. Como programar en Java 7/e. Pearson Education.
2007.
Programación Orientada a Objetos
31
16
Descargar