Вы находитесь на странице: 1из 37

PROGRAMACION

ORIENTADA A OBJETOS

INTRODUCCION A LA
PROGRAMACIN ORIENTADA A
OBJETOS
OBJETIVO

Entender los conceptos bsicos de la


Programacin Orientada a Objetos
(POO)
incluyendo una breve resea
histrica de POO y cdigo del
Lenguaje de programacin JAVA.
Prerrequisitos

Fundamentos de
programacin.
Conceptos como algoritmo,
lenguaje de programacin,
programa, tipos de datos,
compilador, interprete.
TEMAS
Breve resea histrica POO
Que es la programacin OO?
En que se basa la Orientacin o Objetos?
Porqu Orientacin a Objetos?
Clases y objetos
Modificadores de acceso
Propiedades de la Orientacin a Objetos.
Resea Histrica POO
Decada de los 90 la Orientacin a Objetos OO se
convierte en uno de los motores clave de la industria del
software.
Tecnologa vieja y madura, se remonta a la dcada de
los 60
Lenguaje SIMULA67 desarrollado en 1967 (Ms antiguo)
A mitad de la dcada de los 70 crearon el lenguaje
SMALLTALK el primer lenguaje orientado a objetos
consistente y completo.

Microsoft desarrollo el visual studio .NET, el cual facilita


el desarrollo en lenguajes como visual basic, C#, C++,
entre otros, los cuales poseen caractersticas de
orientacin a objetos.
La compaa SUN Microsystem el lenguaje JAVA.

Paradigmas de
programacin.
Que es la programacin
Orientada a Objetos (POO)?
Tipo de programacin es un nuevo medio de
pensar sobre lo que significa computar, es
decir, cmo se puede estructurar
informacin en una computadora.
Permite dividir un problema en pequeas
unidades lgicas de cdigo, independientes
del resto del programa, que interactan
entre s. A estas pequeas unidades lgicas
de cdigo se les ha denominado objetos para
establecer una analoga entre las mismas y
los objetos materiales del mundo real.
Que es la programacin
Orientada a Objetos (POO)?
Paracomprender el cdigo de aplicaciones
complejas creadas mediante POO los
desarrolladores del mismo slo necesitan
entender los mensajes que los objetos se
envan entre s para entender cmo
funciona el programa.

Paraenviarle una orden a un objeto slo es


necesario proporcionarle la informacin de
lo que queremos que haga, sin
preocuparnos por entender exactamente
cmo se va a ejecutar la tarea.
En que se basa la Orientacin o
Objetos?
La Orientacin a Objetos se basa en estas ideas:

Un programa es un mundo que representa un


subconjunto del mundo real.

Orientacin a
objetos
En que se basa la Orientacin o
Objetos?
La estructura del programa se simplifica
en gran medida si cada una de las
entidades u objetos del problema que se
est modelando corresponde directamente
con un objeto que se puede manipular
Representacin en
internamente en un programa.UMLOrden de Compra
Objeto real Idorden
Fecha

ObtenerID( )
ObtenerFecha( )
Registrar ( )
Cancelar ( )

Orden de
compra Orden de
compra
QUE ES UML?
Porqu Orientacin a
Objetos?
Se parece ms al mundo real
Permite representar modelos
complejos
Las plataformas de desarrollo la han
adoptado (Java / .NET)
Clases y Objetos
Que es un Objeto?
Es una cosa, una Entidad del mundo
real.
Orden de Compra Nombre del objeto

Idorden Atributos
Orden de Compra Fecha
ObtenerID( ) Operaciones ,
ObtenerFecha( ) mtodos
Registrar ( ) (Comportamiento)

Cancelar ( )

Camisa Cliente

Entidades fsicas o conceptuales


Definicin formal
Clases y Objetos
Un objeto posee (Booch):
Estado (Posible condicin en la que esta el
objeto, valores de las propiedades o atributos
en el tiempo)
Comportamiento ( Frente a las peticiones, lo
que puede hacer. Mensajes o Mtodos)
Identidad (Aunque tengan el mismo estado,
cada objeto es nico)

Estado. Que es lo que sabe el objeto.


Clases y Objetos
Que es una clase?

Una clase es una descripcin de un tipo de objetos


con:
Propiedades en comn (atributos)
Comportamiento similar (operaciones)
La misma forma de relacionarse con otros objetos
(relaciones)

Una clase es una abstraccin que:


Enfatiza las caractersticas relevantes
Suprime otras caractersticas (simplificacin)

Un objeto es una instancia de una clase


Clases y Objetos
Una clase es una definicin abstracta
de un objeto
Define la estructura y el comportamiento
compartidos por los objetos
Sirve como modelo para la creacin de
objetos
Los objetos pueden ser agrupados en
Claseclases
: molde o modelo
Objetos
basados
en el
molde o
modelo

Un objeto es una instancia de una clase


Clases y Objetos
Ejemplo de clase en Java y objeto
public class Vehiculo
Vehiculo {
Marca private String Marca;
Placa private String Placa;
Encender( ) public void Tipos bsicos JAVA
Acelerar( ) guardarMarcar( String m)
Frenar ( )
{ Marca = m}
public String obtenerMarca( )
{ return Marca; }
}
public class Aplicacion {
public static void main (String parametro)
{
Vehiculo veh1 = new Vehiculo( );
Vehiculo veh2 = new Vehiculo( );
// new permite instanciar las variables
con Objetos
}
}
Clases y Objetos
Ejemplo de clase en Java y objeto
Orden de Compra import java.util.Date;
public class OrdenCompra
idOrden
{
fecha
obtenerID( ) private String idOrden;
Modele el private Date fecha;
colocarID( )
obtenerFecha( ) objeto: public int obtenerID( )
registrar ( ) cuadrado
cancelar ( )
{ return idOrden; }
public void colocarID( int
id)
{ idOrden = id; }
public class Aplicacin { }
public static void main (String parametro)
{
OrdenCompra orden1 = new OrdenCompra( );
OrdenCompra orden2 = new OrdenCompra( );
// new permite instanciar las variables
con Objetos
}
}
Modificadores de acceso
Permiten definir el nivel de acceso
(visibilidad) de los miembros
(atributos o mtodos) de una clase
Publico: Cualquier clase puede ver los
miembros pblicos de otra clase
Privado: Slo la clase puede ver sus
propios miembros privados
Dos modificadores ms (paquete,
Protegido)
Propiedades ms importantes de la Orientacin a
Objetos (OO).

Abstraccin
Relaciones
Herencia
Encapsulamiento
Propiedades de la OO
Abstraccin

Ignorancia Selectiva
La abstraccin facilita trabajar con
cosas complejas
Se enfoca en lo importante, ignora lo
que no es importante (simplifica)
Una clase es una abstraccin.
Propiedades de la OO
Encapsulamiento

Principioque establece que los atributos


propios de un objeto no deben ser visibles
desde otros objetos
Deben ser declarados como privados
Permite abstraer al resto del mundo de la
complejidad de la implementacin interna
Permite exponer el estado del objeto slo a
travs del comportamiento que le
hayamos definido mediante miembros
pblicos
Por qu es til?
Punto de Control/Validacin
Mejor respuesta ante los Cambios
Propiedades de la OO
Relaciones
Todo sistema abarca muchas clases y
objetos
Los objetos contribuyen en el
comportamiento de un sistema
colaborando entre si
La colaboracin se logra a travs de las
relaciones
Existen dos tipos principales de
relaciones
Asociacin
Agregacin
Propiedades de la OO
Relaciones de Asociacin
Una asociacin es una conexin entre dos
clases que representa una comunicacin
Una asociacin puede tener nombre
La comunicacin puede ser tanto uni como bi-
direccional (por defecto)
La multiplicidad es el nmero de instancias que
participan en una asociacin
Ejemplo:
Una Persona es Duea de un Vehculo
Un Vehculo Pertenece a una Persona
Ejemplo multiplicidad
Propiedades de la OO
Relaciones de Agregacin
La agregacin es una forma especial de
asociacin donde un todo se relaciona con sus
partes
Tambin se conoce como una parte de o una
relacin de contencin
Ejemplo:
Una Puerta es una parte de un Vehculo
El Vehculo es azul, la Puerta es Azul
Mover el Vehculo implica mover la Puerta
Propiedades de la OO
Herencia
Es una relacin entre clases en la cual
una clase comparte la estructura y
comportamiento definido en otra clase
(Grady Booch)
Cada clase que hereda de otra posee:
Los atributos de la clase base adems de
los propios
Soporta todos o algunos de los mtodos de
la clase base
Una subclase hereda de una clase
base
Propiedades de la OO
Herencia Clase Base

Clases Derivadas
Ejemplo JAVA o
subclases
Propiedades de la OO
Herencia
Herencia Es-Un: herencia real,
donde la subclase es un tipo
especfico de la superclase
Un Cuadrado es un Rectngulo
Un perro es un mamfero
Un automvil es un vehculo a motor
Propiedades de la OO
Polimorfismo
Es la propiedad que tienen los
objetos de permitir invocar
genricamente un comportamiento
(mtodo) cuya implementacin ser
delegada al objeto correspondiente
recin en tiempo de ejecucin
El polimorfismo tiende a existir en
las relaciones de herencia, pero no
siempre es as
Propiedades de la OO
Polimorfismo
La definicin del mtodo reside
en la clase base
La implementacin del mtodo
reside en la clase derivada
La invocacin es resuelta al
momento de ejecucin Transpo
rte
Avanzar

Fren
ar

Transporte
Avanzar
Transpo
rte
Avanzar

Fren

Frenar ar

Transpo
rte
Avanzar

Fren
ar
CONCLUSIONES
La orientacin a objetos permite
una representacin ms directa
del modelo del mundo real en el
cdigo.
Transformacin requisitos del
sistema a la especificacin del
sistema se hace mucho ms
sencilla, que de la manera
tradicional (estructurada).
Las tecnologas (conceptos y
herramientas) orientados a
objetos facilitan que los
problemas del mundo real sean
!Muchas gracias!
PARADIGMAS DE PROGRAMACIN
Hay para todos los gustos
Estructurados (C, Pascal, Basic, etc.)
Funcionales (CAML)
Declarativos (Prolog)
Orientados a Objetos (C#, VB.NET,
Smalltalk, Java)
Orientados a Aspectos
Hbridos (Lisp, Visual Basic)

Cada enfoque tiene sus ventajas y


desventajas
Cada uno es ms apropiado para
ORIENTACION A OBJETOS

Se puede describir como el


conjunto de tcnicas de ingeniera
que facilitan el modelado y
desarrollo de software a partir de
componentes.
QUE ES UML
UML es un lenguaje visual para
especificar, construir y
documentar sistemas (OMG -
Object Management Group)

UML no es Metodologa!
QUE ES UN OBJETO

Definicin Formal (Rumbaugh):


Un objeto es un concepto, abstraccin
o cosa con un significado y lmites
claros en el problema en cuestin
static

MODIFICADORES DE ACCESO EN JAVA


Modificadores de acceso
La Otra clase
Otra clase de
misma del mismo Subclases
otro paquete
clase paquete
public X X X X
protected X X
default X X
private X

public (acceder al elemento desde cualquier clase)


private (elemento accedido desde la clase en la que se encuentran)
protected (desde la clase o subclases)
El tipo por defecto, default o package-private.
(El elemento puede ser accedido slo desde las clases que pertenezcan
al mismo paquete).
Ejemplo Herencia
Use la palabra clave de java extends para indicar herencia en su programa

public class Transporte


{ public class Automovil extends
private int pasajeros; Transporte {
public void avanzar( ) // atributos
{ // instrucciones } // mtodos
public void detenerse( )}
{// instrucciones }
}
public class Avion extends
Transporte {
// hereda atributos y mtodos de la
clase base
// atributos
// mtodos
}
Ejemplo de Asociaciones y
multiplicidad

Linea Aerea

1
Emplea
1..*
Persona Vuelo Avin
1 Asignada-a * * Asignado-a 1
1 *

Supervisa

Вам также может понравиться