1CursoPOOConceptosOO [Modo de compatibilidad]acarrillo/POO/Material/CursoPOO... · 3 Programación...

16
1 Programación Orientada a Objetos Programación Orientada a Objetos Conceptos Básicos de Objetos Conceptos Básicos de Objetos Ing Ing. Julio Ernesto Carreño Vargas . Julio Ernesto Carreño Vargas MsC MsC. 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.

Transcript of 1CursoPOOConceptosOO [Modo de compatibilidad]acarrillo/POO/Material/CursoPOO... · 3 Programación...

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.