Sie sind auf Seite 1von 43

Introduccin a la Orientacin a Objetos

Unidad 1: Introduccin Marcelo Trigo 03 de mayo 2012

Objetivo
Describir el Paradigma de Orientacin a Objetos incluyendo los conceptos relacionados al anlisis, diseo y programacin

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

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) Incomprensibles....

Cada enfoque tiene sus ventajas y desventajas Cada uno es ms apropiado para ciertas cosas

El mundo color de Objetos


Todo el mundo est compuesto de entidades que se relacionan e interactan entre si Qu es un Objeto?

Todo es un Objeto ~?!

Es lo mismo de siempre con otro nombre?

Pensar en Objetos .

No es el ltimo grito de la moda (1980s)

El mundo color de Objetos


Por qu Orientacin a Objetos (OO)?

Se parece ms al mundo real Permite representar modelos complejos Muy apropiada para aplicaciones de negocios Las empresas ahora s aceptan la OO Las nuevas plataformas de desarrollo la han adoptado (Java / .NET)

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Qu es un Objeto?
Informalmente, un objeto representa una entidad del mundo real Entidades Fsicas

(Ej.: Vehculo, Casa, Producto)

Entidades Conceptuales

(Ej.: Proceso Qumico, Transaccin Bancaria) (Ej.: Lista Enlazada, Interfaz Grfica)

Entidades de Software

Qu 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

Un objeto posee (Booch):

Estado (Atributos) Auto Comportamiento Mtodos Identidad

Un objeto posee Estado


Lo que el objeto sabe El estado de un objeto es una de las posibles condiciones en que el objeto puede existir El estado normalmente cambia en el transcurso del tiempo El estado de un objeto es implementado por un conjunto de propiedades (atributos), adems de las conexiones que puede tener con otros objetos

Un objeto posee Comportamiento


Lo que el objeto puede hacer El comportamiento de un objeto determina cmo ste acta y reacciona frente a las peticiones de otros objetos Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) Se implementa mediante mtodos

Un objeto posee Identidad


Cada objeto tiene una identidad nica, incluso si su estado es idntico al de otro objeto

Qu es una Clase?
Una clase es una descripcin de un grupo de objetos con:

Propiedades en comn (atributos) Comportamiento similar (operaciones) La misma forma de relacionarse con otros objetos (relaciones) Una semntica en comn (significan lo mismo) Enfatiza las caractersticas relevantes Suprime otras caractersticas (simplificacin)

Una clase es una abstraccin que:

Un objeto es una instancia de una clase

Objetos y Clases
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 clases

Ejemplo de una Clase


Clase: Curso Estado (Atributos)

Nombre Ubicacin Das Ofrecidos Horario de Inicio Horario de Trmino Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si est Completo

Comportamiento (Mtodos)

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a 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

Existen otros dos modificadores para propsitos especficos (Paquete, Protegido)

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Qu es UML?
UML es un lenguaje visual para especificar, construir y documentar sistemas (OMG - Object Management Group) Unified (UNIFICADO):

El aporte de muchos mtodos y notaciones Independiente de implementaciones, plataformas y lenguajes Los modelos son utilizados en todas las ingenieras Si hay gente, requieren comunicarse. Si se tienen que comunicar, se tienen que entender. Para entenderse necesitan un lenguaje comn

Modeling (MODELADO):

Language (LENGUAJE):

UML no es Metodologa!

Una Clase en UML


Una clase est compuesta de tres secciones

La primera seccin contiene el nombre de la clase La segunda seccin muestra la estructura (atributos) La tercera seccin muestra el comportamiento (operaciones)

Curso -nombre -ubicacion -dias -inicio -fin +AgregarAlumno() +BorrarAlumno() +GenerarListadoCurso() +EstaCompleto()

La segunda y la tercera seccin pueden ser suprimidas Modificadores de Acceso

Los miembros pblicos se denotan con el signo + Los miembros privados se denotan con el signo

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Pilares de la Orientacin a Objetos

Abstraccin

Relaciones

Herencia

Encapsulamiento

Abstraccin
Ignorancia Selectiva

La abstraccin nos ayuda a trabajar con cosas complejas Se enfoca en lo importante Ignora lo que no es importante (simplifica)

Una clase es una abstraccin en la que:


Se enfatizan las caractersticas relevantes Se suprimen otras caractersticas

Una clase debe capturar una y solo una abstraccin clave

Encapsulamiento
Principio que 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

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 Asociacin Agregacin

Existen dos tipos principales de relaciones

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 bidireccional (por defecto) La multiplicidad es el nmero de instancias que participan en una asociacin
Una Persona es Duea de un Vehculo Un Vehculo Pertenece a una Persona
Persona -dueo Vehiculo

Ejemplo:

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 Una Puerta es una parte de un Vehculo El Vehculo es azul, la Puerta es Azul Mover el Vehculo implica mover la Puerta
Vehiculo -color +Mover() Puerta

Ejemplo:

Herencia
Clase Base

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:

Transporte -pasajeros +Avanzar() +Detenerse()

Los atributos de la clase base adems de los propios Soporta todos o algunos de los mtodos de la clase base

Automvil

Avin

Una subclase hereda de una clase base

Clases Derivadas o subclases

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

Mtodos constructores y destructores


Los constructores y destructores son dos tipos de mtodos especiales que se ejecutan, respectivamente, al crear un nuevo objeto y cuando el recolector de basura detecta que ya no lo estamos utilizando y es posible eliminarlo de la memoria.

Constructores y destructores
El constructor es un mtodo especial que sirve para dar los valores iniciales a los campos de un objeto en el momento en que se crea. Debe tener el mismo nombre que la clase en la que se declara y adems es preciso que sea pblico y que no tenga ningn tipo de retorno.

Constructores y destructores
Los destructores son llamados por el recolector de basura cuando un objeto est a punto de ser borrado de memoria. Gracias a esto el objeto puede tomar acciones de finalizacin como por ejemplo liberar un recurso externo que tenga bloqueado (un fichero, un puerto de comunicaciones, un handle de una ventana Windows, etctera).

Sobrecarga de mtodos y operadores


Sobrecarga:-se refiere a la posibilidad de tener dos o ms funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o ms funciones con el mismo nombre realizan acciones diferentes. Tambin existe la sobrecarga de operadores que al igual que con la sobrecarga de funciones se le da ms de una implementacin a un operador.

Sobrecarga de mtodos y operadores


Sobrecarga es la capacidad de un lenguaje de programacin, que permite nombrar con el mismo identificador diferentes variables u operaciones. El mismo mtodo dentro de una clase permite hacer cosas distintas en funcin de los parmetros.

Sobrecarga de mtodos y operadores


Sobrecarga de Mtodos:- Algunos mtodos en una clase pueden tener el mismo nombre. Estos mtodos deben contar con diferentes argumentos. El compilador decide qu mtodo invocar comparando los argumentos. Se generara un error si los mtodos slo varan en el tipo de retorno.

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Interfaces (1/3)
Recurso de diseo soportado por los lenguajes orientados a objetos que permite definir comportamiento Permite que clases que no estn estrechamente relacionadas entre s deban tener el mismo comportamiento La implementacin de una interfaz es un contrato que obliga a la clase a implementar todos los mtodos definidos en la interfaz

Interfaces (2/3)
Vehiculo

Aereo

Acuatico

Terrestre

Avin

Barco

Automvil

De que clase heredara la clase Hidroavin ?

Interfaces (3/3)
Se crean las interfaces que definen comportamiento Hidroavin deber definir los comportamientos de cada una de las interfaces que implemente
interface Acuatico +Navegar() interface Aereo +Volar()

Hidroavion

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

Polimorfismo - Ejemplo
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
Transporte Avanzar Frenar

Transporte
Avanzar Frenar
Transporte Avanzar Frenar Transporte Avanzar Frenar

Mtodos Virtuales
Virtual:- Es una palabra clave que se usa para modificar un mtodo o una declaracin de propiedad en cuyo caso, al mtodo o la propiedad se le conoce como miembro virtual. El miembro virtual permite que sus implementaciones se reemplace dentro de las claves derivadas.

FIN

Das könnte Ihnen auch gefallen