Post on 28-Apr-2018
1
Programación Orientada a ObjetosProgramación Orientada a Objetos
Conceptos Básicos de ObjetosConceptos Básicos de Objetos
IngIng. Julio Ernesto Carreño Vargas . Julio Ernesto Carreño Vargas
MsCMsC..
Programación Orientada a Objetos 2
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.
2
Programación Orientada a Objetos 3
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 4
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.
3
Programación Orientada a Objetos 5
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 6
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
4
Programación Orientada a Objetos 7
Representación Gráfica de una Clase
Programación Orientada a Objetos 8
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.
5
Programación Orientada a Objetos 9
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 10
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.
6
Programación Orientada a Objetos 11
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 12
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
7
Programación Orientada a Objetos 13
Clases y Objetos(3)
objCuenta2 : Cuenta objCuenta3 : CuentaobjCuenta1 : Cuenta
saldo
500
saldo
9000
saldo
15000
Cuenta
saldoClase Cuenta
3 objetos de la clase Cuenta
Observe que todos tienen un saldo,
pero cada objeto con un valor diferente
Programación Orientada a Objetos 14
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 clasesdiferentes a la actual.
� public (Pública): Indica que el atributo o el métodopuede ser visto y utilizado por objetos de clasesdiferentes a la actual.
� protected (Protegida): Esta visibilidad hacereferencia a estructuras con herencia, sólo es visiblepor ella misma y por sus subclases
8
Programación Orientada a Objetos 15
Visibilidad
- Privado
+ Publico
# Protegido
Programación Orientada a Objetos 16
Ejemplo de VisibilidadEjemplo de Visibilidad
class Service {
public int memberOne;
private int memberTwo;
public void doOne() {
…
}
private void doTwo() {
…
}
}
…
Service obj = new Service();
obj.memberOne = 10;
obj.memberTwo = 20;
obj.doOne();
obj.doTwo();
…
Client Service
9
Programación Orientada a Objetos 17
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 18
Forma Básica Clase Java
import permite “reusar”
clases de otros paquetes.
Especifica que la clase forma
parte del paquete “conceptos”
Sección de atributos
visibles en toda la clase
Sección de métodos
10
Programación Orientada a Objetos 19
PaquetesPaquetes
�� Los paquetes son una forma de organizar grupos Los paquetes son una forma de organizar grupos de clases. Un paquete contiene un conjunto de de clases. Un paquete contiene un conjunto de clases relacionadas por finalidad ó funcionalidad.clases relacionadas por finalidad ó funcionalidad.
�� Los paquetes resuelven el problema del conflicto Los paquetes resuelven el problema del conflicto entre los nombres de las clases. entre los nombres de las clases. �� Al crecer el número de clases crece la probabilidad Al crecer el número de clases crece la probabilidad
de designar con el mismo nombre a dos clases de designar con el mismo nombre a dos clases diferentes.diferentes.
�� La siguiente declaración indica que la clase va a La siguiente declaración indica que la clase va a pertenecer a un paquete llamado ventaspertenecer a un paquete llamado ventas
Programación Orientada a Objetos 20
Importar clasesImportar clases
�� La palabra reservada La palabra reservada importimport permite utilizar clases de permite utilizar clases de otro paqueteotro paquete�� Lo anterior no implica copiar el código de la clase Lo anterior no implica copiar el código de la clase
importada a la clase importadoraimportada a la clase importadora
�� La anterior definición es equivalente a:La anterior definición es equivalente a:
�� En los lenguajes POO se debe informar la En los lenguajes POO se debe informar la ubicación de los paquetes que se quieren importar: ubicación de los paquetes que se quieren importar: classpathclasspath
11
Programación Orientada a Objetos 21
Clase Pública
El archivo en el disco se debe llamar “Orden.java”
Programación Orientada a Objetos 22
Clase Privada
Si no aparece
ningun
modificador de
visibilidad, la
clase sólo es
visible en el
directorio.
12
Programación Orientada a Objetos 23
Forma Básica de Atributos
Visibilidad
•private
•public
•protected
•paquete
Tipo
•String
•int
•double
•float
•boolean
•…
Nombre dado a
la variable
Comentario del atributo para ser usado con javadoc
Programación Orientada a Objetos 24
Propiedades this
this:
Es una referencia al objeto
(instancia de la clase) actual.
13
Programación Orientada a Objetos 25
Forma Básica MétodosModificador
de
Visibilidad
•private
•public
•protected
•paquete
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 26
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.
14
Programación Orientada a Objetos 27
Métodos Analizadores(Métodos Analizadores(accesorsaccesors))
Por cada atributo de la clase existe un método get
que retorna el valor de dicho atributo
Programación Orientada a Objetos 28
Métodos Modificadores(Métodos Modificadores(mutatorsmutators))
Por cada atributo de la clase existe un método set
que asigna un valor a dicho atributo
15
Programación Orientada a Objetos 29
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 30
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
16
Programación Orientada a Objetos 31
BibliografíaBibliografía
�� UML y patrones una introducción al análisis y diseño orientado a UML y patrones una introducción al análisis y diseño orientado a
objetos y al proceso unificado. Larman, Craigobjetos y al proceso unificado. Larman, Craig
�� Paul Deitel. Como programar en Java 7/e. Pearson Education. Paul Deitel. Como programar en Java 7/e. Pearson Education.
2007.2007.