You are on page 1of 37

Conceptos de Programacin

Orientada a Objetos

Fundamentos de Programacin
Orientada a Objetos
Desarrollo de Software
1960-1975 (Orientado a Procesos)
Refinamiento paso a paso; Desarrollo Top-
Down

1975-1990 (Orientado a Datos)


Normalizacin, Sistema de Base de Datos
Desarrollo de Software
1990 actualmente (Orientado a Objetos)
significa que el software se organiza como
una coleccin de objetos discretos que
contienen tanto la estructura de datos como
un comportamiento.
Sistema
Es un conjunto de elementos que interactuan
entre si.

En un sistema Orientado a Objetos los


elementos toman el nombre de Objetos
Sistema O.O
Ej: Una Empresa

Gerente General

Los colaboradores
del gerente

Los colaboradores
de los colaboradores
del gerente

Algunas personas tienen


la misma funcin

colaboraciones
Sistema de Informacin
Orientado a Objetos
NO es SI es
Base de Datos + Conjunto de objetos
Programas colaborativos

Se rige a tcnicas de Nueva forma de


Programacin pensar
Sistema de Informacin
Orientado a Objetos
SI es
Se trabaja en trminos del dominio
(Anlisis del conocimiento y los
conceptos del negocio)

Proceso conceptual independiente


Un Objeto
Objeto es algo que tiene sentido en el
contexto de la aplicacin.

Es un concepto, abstraccin o cosa con


lmites bien definidos y con significado a
efectos del problema.
Un Objeto: Propsitos
Promover la comprensin del mundo real

Proporcionar una base prctica para la


implementacin por computadora.
Un Objeto: Caractersticas
tiene una identidad
La identidad no es una caracterstica del objeto, es
definida por el sistema propiamente y no puede
ser cambiada.

Puedo tener 2 manzanas exactamente iguales en


forma, color y tamao; pero cada una no deja de
ser un individuo propio, con su propia identidad.
Un Objeto
tiene un estado
este puede ser descrito por las caractersticas
(atributos) del mismo
una caracterstica de un objeto podra ser su color,
forma, tamao, etc.

tiene comportamiento
este puede ser descrito por los mtodos
los mtodos forman parte del objeto y nos sirven
como una interfaz para interactuar con el mismo
por ejemplo si tengo un objeto estudiante, este podra
tener un mtodo dar_examen
Ejercicio

Piense en un sistema en el cual se desea


definir un objeto que represente un
contador.

Cules sern sus atributos?


Cules sern sus mtodos?
Solucin
MiContador

Nuestro objeto
posee un atributo
Dato (lo que s) para guardar el
Estado : Entero valor del conteo.
Servicios: Lo que
Un entero
puedo Hacer

Incrementar
Decrementar
Los mtodos seran:
Reiniciar ( a 0) Incrementar
Decrementar
Reiniciar a 0
Interaccin entre Objetos

Los objetos se comunican (colaboran


entre s) usando mensajes
El cliente invoca el comportamiento del
servidor

La recepcin de un mensaje provoca


entonces que uno de los mtodos de mi
objeto sea ejecutado.
Clasificacin de Objetos

Es la abstraccin de cualidades comunes Pensemos cules seran


las caractersticas comunes del conjunto de sillas presentado.
tienen color
estn hechas de un material, etc
Clase Silla es
Atributos
color
material
Mtodos
pintar
do
Fin clase silla
Abstraccin
Es el proceso de capturar los detalles
fundamentales de un objeto mientras se
suprimen o ignoran los detalle.

Su esencia se basa en la descomposicin de


un sistema complejo en sus partes ms
fundamentales y describir estas partes con un
lenguaje sencillo y preciso.
Abstraccin
Un modo poderoso de gestionar la
abstraccin es mediante clasificaciones
jerrquicas, permitiendo que un sistema
complejo se rompa en partes ms
significativas y fciles de entender.
Tipos de Objetos

Cuando clasificamos los objetos, estamos


generalizando las propiedades que puede tener
el objeto, esta generalizacin define el Tipo del
Objeto
El tipo del objeto es un patrn para todos los
objetos de este tipo
Este tipo se denomina tipo de dato abstracto

El tipo de dato abstracto es ms conocido como


clase
Clase contador

MiContador clase Contador


Atributos
valor_conteo
Mtodos
+ - 0 Incrementar es
do
valor_conteo := valor_conteo +1
222
01 end -- Incrementar
Decrementar es
do
valor_conteo := valor_conteo -1
end -- Decrementar
Reiniciar es
valor_conteo := 0
end reiniciar
end clase Contador
Instancia de Clase
Cada objeto es una instancia de su clase.

Toda instancia de la clase posee:


Su propio valor para cada uno de los atributos,
pero comparte los nombres, de los atributos y las
operaciones con las dems instancias de clases.
Encapsulamiento
Llamada tambin ocultamiento de
informacin, consiste en separar los
aspectos externos del objeto, a los
cuales puede acceder otros objetos, de
los detalles internos de implementacin
del mismo, que quedan ocultos para los
dems.
Encapsulamiento

METODOS Los datos y los mtodos para


manipular los datos son una sola
Mensaje DATOS
unidad, estn encapsulados en el
objeto.

Los datos parte del objeto pueden


ser manipulados nicamente por la
invocacin de los mtodos
publicados en la interfase del
objeto.
Ocultamiento de Informacin:
Los detalles de la implementacin de los mtodos son
ocultados para los clientes.
Encapsulamiento
En Java la base del encapsulamiento es
la clase, donde se define la estructura
y el comportamiento que sern
compartidos por el grupo de objetos
pertenecientes a la misma.
Encapsulamiento
Para hacer referencia a los componentes
accesibles de un objeto ser necesario
especificar su sintaxis
nombreObjeto.nombreComponente.
Encapsulamiento

Mtodos privados

Variables
de
Mtodos pblicos instancia
privadas
Encapsulacin
Los datos parte del objeto pueden ser manipulados
nicamente por la invocacin de los mtodos
publicados en la interfase del objeto.
MiContador.reiniciar
MiContador.estado := 45 MiContador.Incrementar
MiContador.Incrementar
MiContador.Incrementar 45
MiContador.Incrementar veces !
.

MiContador.Incrementar

Entonces: Los datos-atributos son descritos junto con


las rutinas (mtodos) que permiten manipularlos.
Herencia
Es compartir atributos y operaciones entre
clases tomando como base una relacin
jerrquica.

Es la capacidad para crear nuevas


clases(descendientes) que se construyen
sobre otras existentes, permitiendo que stas
les trasmitan sus propiedades.
Herencia
En POO, la reutilizacin de cdigos se
efecta creando una subclase que
constituye una restriccin o extensin
de la clase base, de la cual hereda sus
propiedades.
Herencia
Cada clase que se define en Java se hereda de
una clase existente, bien explcita o
implcitamente.

Un tipo de objeto puede tener subtipos


Ej: Un tipo de objeto cuenta puede tener subtipos
cuenta de ahorrros y cuenta corriente
Herencia
El tipo de objeto cuenta es una clase
generalizada (Clase Abstracta)

Los subtipos son clases especializadas

Las clases especializadas heredan los


atributos y mtodos de la clase general.
Herencia

Cuenta Clase Abstracta

Cuenta de ahorros Cuenta Corriente Clase


Especializada
Herencia
Animal Superclase

Subclases Insecto Mamfero Pjaro


de
Animales
Persona

Hombre Mujer
Herencia
Elemento Descripcin

Superclase o clase padre Se pueden reutilizar o cambiar los


o clase base mtodos

Se pueden aadir nuevos datos y


nuevos mtodos, teniendo mayor
funcionalidad.
Subclase o clase hija,
clase extendida o clase Se puede anular(reemplazar)
derivada mtodos heredados y proporcionar
implementaciones especializadas
para sus mtodos
Herencia
Elemento Descripcin

Hereda el estado(declaracin de
Subclase o clase hija, variables) de todas las clases
clase extendida o clase antecedentes en la jerarqua de
derivada todas las clases base.

Importante Una Clase:


Puede no tener padres, est es clase base o clase raz.
No tener descendientes(hijos), se llama clase hoja.
Si slo tiene una clase padre, tiene herencia simple.
Si tiene ms de una clase padre, tiene herencia mltiple.
Herencia
clase Cuenta Deposito (entrada_cantidad) es
Atributos do
no_cuenta balance := balance +
balance entrada_cantidad
cierre end --Deposito

Mtodos Retiro (entrada_cantidad) es


Abrir (entrada_noCuenta) es do
do balance := balance
no_cuenta := entrada_cantidad
entrada_noCuenta end -- Retiro
balance := 0
cierre := 0 Cierre es
end -- Abrir do
cierre := 1
end -- Cierre

end -- Clase Cuenta


Polimorfismo
Una subclase tiene la posibilidad de
sobrescribir los mtodos heredados
pueden existir 2 subclases que a pesar de poseer
los mismos atributos e interfaces son diferentes

presentan formas diferentes (polimorfismo) sin


cambiar la naturaleza de s mismas.
Polimorfismo
Diferentes objetos reaccionan de diferente forma
al mismo mensaje (al mismo evento)
IMPRIMIR DEPOSITAR

Iniciar Iniciar Abrir Abrir

Imprimir Imprimir Depositar Depositar

Impresora Laser Impresora a tinta Cuenta Corriente Cuenta de Ahorros

You might also like