Académique Documents
Professionnel Documents
Culture Documents
TEMA:
Fundamentos de programacin orientada a objetos
FACILITADOR:
Ing. Julissa A. Alquisiris Sibaja
SEMESTRE: 1
GRUPO: E-2
ndice
INTRODUCCIN.. 3
CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS
OBJETOS5-6
CLASES7-8
ENVIO DE MESAJES...8
ENCAPSULAMIENTO....9
HERENCIA..10
POLIMORFISMO.11-12
ABSTRACCIN.13-14
MODULARIDAD..14
PRINCIPIO DE OCULTACIN..14
RECOLECCIN DE BASURA.14-15
CONCLUSIN...16
Introduccin
Es importante aclarar desde un principio que no solo existe la programacin estructurada
pues era la nica la cual yo conoca y tena conocimientos previos, sin embargo al realizar
esta investigacin me encontr con un nuevo paradigma que es la programacin orientada
objetos.
La programacin orientada a objetos es una filosofa, un modelo de programacin, con
su teora y su metodologa, que conviene conocer y estudiar antes que nada. Un lenguaje
orientado a objetos es un lenguaje de programacin que permite el diseo de aplicaciones
orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar
aplicaciones orientadas a objetos aprenda primero la filosofa (o adquiera la forma de
pensar) y despus el lenguaje, porque no slo hay un paradigma sino tambin muchos
lenguajes. En este documento veremos brevemente los conceptos bsicos bueno ms que
nada las caractersticas que posee la programacin orientada a objetos, y as poder
comprender el porqu de su aparicin.
Objetos
Clases
Envo de mensajes
Objetos
Entender que es un objeto es la clave para entender cualquier lenguaje orientado a
objetos.
Existen muchas definiciones que se le ha dado al Objeto. Primero empecemos
entendiendo que es un objeto del mundo real. Un objeto del mundo real es cualquier cosa
que vemos a nuestro alrededor. Digamos que para leer este artculo lo hacemos a travs
del monitor y una computadora, ambos son objetos, al igual que nuestro telfono celular,
un rbol o un automvil.
Analicemos un poco ms a un objeto del mundo real, como la computadora. No
necesitamos ser expertos en hardware para saber que una computadora est compuesta
internamente por varios componentes: la tarjeta madre, el chip del procesador, un disco
duro, una tarjeta de video, y otras partes ms. El trabajo en conjunto de todos estos
componentes hace operar a una computadora.
Internamente, cada uno de estos componentes puede ser sumamente complicado y puede
ser fabricado por diversas compaas con diversos mtodos de diseo. Pero nosotros no
necesitamos saber cmo trabajan cada uno de estos componentes, como saber que hace
cada uno de los chips de la tarjeta madre, o cmo funciona internamente el procesador.
Cada componente es una unidad autnoma, y todo lo que necesitamos saber de adentro
es cmo interactan entre s los componentes, saber por ejemplo si el procesador y las
memorias son compatibles con la tarjeta madre, o conocer donde se coloca la tarjeta de
video. Cuando conocemos como interaccionan los componentes entre s, podremos armar
fcilmente una computadora.
Que tiene que ver esto con la programacin? La programacin orientada a objetos
trabaja de esta manera. Todo el programa est construido en base a diferentes
componentes (Objetos), cada uno tiene un rol especfico en el programa y todos los
componentes pueden comunicarse entre ellos de formas predefinidas.
Todo objeto del mundo real tiene 2 componentes: caractersticas y comportamiento.
Por ejemplo, los automviles tienen caractersticas (marca, modelo, color, velocidad
mxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar
llantas, etc.).
Los Objetos de Software, al igual que los objetos del mundo real, tambin tienen
caractersticas y comportamientos. Un objeto de software mantiene sus caractersticas en
Carretera a San Antonio Monterrey Km. 1.7, C. P. 70701, Salina
Cruz, Oaxaca.
Tels. 01 (971) 71 6 28 37 y 01 (971) 71 6 32 42,
e-mail: contacto@itsalinacruz.edu.mx.
www.itsalinacruz.edu.mx
Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cochera un
Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del mundo real al
mundo del software, tendremos un objeto Automvil con sus caractersticas
predeterminadas:
Marca
Modelo
Color
Velocidad Mxima = 260 km/h
=
=
=
Ford
Focus
Azul
Cuando a las caractersticas del objeto le ponemos valores decimos que el objeto tiene
estados. Las variables almacenan los estados de un objeto en un determinado momento.
Definicin terica: Un objeto es una unidad de cdigo compuesto de variables y mtodos
relacionados.
Las Clases
En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo,
nuestro telfono celular es slo uno de los miles que hay en el mundo. Si hablamos en
trminos de la programacin orientada a objetos, podemos decir que nuestro objeto celular
es una instancia de una clase conocida como "celular". Los celulares tienen caractersticas
(marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y
recibir llamadas, enviar mensajes multimedia, transmisin de datos, etc.).
Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares
comparten esas caractersticas comunes y construyen modelos o plantillas comunes, para
que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese
modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la
llamamos OBJETOS.
Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo
tipo y mismas caractersticas.
Definicin terica: La clase es un modelo o prototipo que define las variables y mtodos
comunes a todos los objetos de cierta clase. Tambin se puede decir que una clase es
una plantilla genrica para un conjunto de objetos de similares caractersticas.
Carretera a San Antonio Monterrey Km. 1.7, C. P. 70701, Salina
Cruz, Oaxaca.
Tels. 01 (971) 71 6 28 37 y 01 (971) 71 6 32 42,
e-mail: contacto@itsalinacruz.edu.mx.
www.itsalinacruz.edu.mx
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad
no existe diferencia entre un objeto y una instancia. Slo que el objeto es un trmino ms
general, pero los objetos y las instancias son ambas representacin de una clase.
Definicin Terica: Una instancia es un objeto de una clase en particular.
Envo de Mensajes
Un objeto es intil si est aislado. El medio empleado para que un objeto interacte con
otro son los mensajes. Hablando en trminos un poco ms tcnicos, los mensajes son
invocaciones a los mtodos de los objetos.
Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma
entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los
componentes del sistema. Algunos autores confunden este concepto con el principio de
ocultacin, principalmente porque se suelen emplear conjuntamente.
Ejemplo 1: De un televisor, el usuario conoce su apariencia y parte de su funcionamiento.
Slo le importa que funcionen el selector de canales, el video y el audio; no le interesa
saber cmo funciona cada una de las partes internas del aparato, ese detalle slo le
interesan al fabricante y al tcnico de servicio.
Ejemplo 2: De un animal no slo es necesario conocer su apariencia; tambin se requiere
conocer qu sabe hacer y cmo reacciona ante determinadas situaciones.
Caja Negra: Un objeto en el que su comportamiento y atributos son conocidos pero no as
su trabajo interno, el cual continua siendo un misterio.
Carretera a San Antonio Monterrey Km. 1.7, C. P. 70701, Salina
Cruz, Oaxaca.
Tels. 01 (971) 71 6 28 37 y 01 (971) 71 6 32 42,
e-mail: contacto@itsalinacruz.edu.mx.
www.itsalinacruz.edu.mx
Herencia:
Las clases no se encuentran aisladas, sino que se relacionan entre s, formando una
jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de
todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el
encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos
especializados de objetos preexistentes. Estos pueden compartir (y extender) su
comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente
agrupando los objetos en clases y estas en rboles o enrejados que reflejan un
comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que
hay herencia mltiple; siendo de alta complejidad tcnica por lo cual suele recurrirse a la
herencia virtual para evitar la duplicacin de datos.
Las clases heredan los datos y mtodos de la superclase. Un mtodo heredado puede ser
sustituido por uno propio si ambos tienen el mismo nombre.
La herencia puede ser simple (cada clase tiene slo una superclase) o mltiple (cada
clase puede tener asociada varias superclases). La clase Docente y la clase Estudiante
heredan las propiedades de la clase Persona (superclase, herencia simple). La clase
Preparador (subclase) hereda propiedades de la clase Docente y de la clase Estudiante
(herencia mltiple).
Ejemplo 2:El gato y el Perro tendran la herencia (mtodos y atributos) del Mamfero.
Mamfero: Gato Perro etc.
Polimorfismo:
bajo el nombre comn rea. En la prctica y dependiendo del objeto que llame al mtodo,
se usar el cdigo correspondiente.
Ejemplos, Superclase: Clase Animal Subclases: Clases Mamfero, Ave, Pez
Se puede definir un mtodo Comer en cada subclase, cuya implementacin cambia de
acuerdo a la clase invocada, sin embargo el nombre del mtodo es el mismo.
Mamifero.Comer Ave.Comer Pez.Comer
Otro ejemplo de polimorfismo es el operador +. Este operador tiene dos funciones
diferentes de acuerdo al tipo de dato de los operandos a los que se aplica. Si los dos
elementos son numricos, el operador + significa suma algebraica de los mismos, en
cambio si por lo menos uno de los operandos es un String o Carcter, el operador es la
concatenacin de cadenas de caracteres.
Otro ejemplo de sobrecarga es cuando tenemos un mtodo definido originalmente en la
clase madre, que ha sido adaptado o modificado en la clase hija. Por ejemplo, un mtodo
Comer para la clase Animal y otro Comer que ha sido adaptado para la clase Ave, quien
est heredando de la clase Animal.
Cuando se desea indicar que se est invocando (o llamando) a un mtodo sobrecargado y
que pertenece a otra clase (por ejemplo, a la clase padre) lo indicamos con la siguiente
sintaxis:
Clase_Madre::nombre_mtodo;
Para el ejemplo, la llamada en la clase hija Ave del mtodo sobrecargado Comer de la
clase madre Animal sera:
Animal:Comer
Abstraccin:
Ejemplo 3: Imaginemos que queremos aplicar la abstraccin a las Aves. El objeto seria el
pjaro, y sus caractersticas, por ejemplo, serian:
Pico
Alas
Plumas
Patas
Las funcionalidades asociadas serian: Volar, parar, etc.
Modularidad:
Se denomina modularidad a la propiedad que permite subdividir una aplicacin en partes
ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente
como sea posible de la aplicacin en s y de las restantes partes. Estos mdulos se
pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la
encapsulacin, los lenguajes soportan la modularidad de diversas formas.
Principio de ocultacin:
Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone
una interfaz a otros objetos que especifica cmo pueden interactuar con los objetos de la
clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por
quien no tenga derecho a acceder a ellas; solamente los propios mtodos internos del
objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el
estado interno de un objeto de manera inesperada, eliminando efectos secundarios e
interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo
a los datos internos del objeto de una manera controlada y limitando el grado de
abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos.
Recoleccin de basura
La recoleccin de basura o garbage collection es la tcnica por la cual el entorno de
objetos se encarga de destruir automticamente, y por tanto desvincular la memoria
Carretera a San Antonio Monterrey Km. 1.7, C. P. 70701, Salina
Cruz, Oaxaca.
Tels. 01 (971) 71 6 28 37 y 01 (971) 71 6 32 42,
e-mail: contacto@itsalinacruz.edu.mx.
www.itsalinacruz.edu.mx
asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que
el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el
entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En
la mayora de los lenguajes hbridos que se extendieron para soportar el Paradigma de
Programacin Orientada a Objetos como C++ u Object Pascal, esta caracterstica no
existe y la memoria debe desasignarse expresamente.
Conclusin:
En conclusin despus de lo investigado pude notar que la programacin orientada a
objetos permite la optimizacin del cdigo generado gracias a que mediante tcnicas de
herencia, atributos estticos entre otros permiten, que el cdigo sea genrico de manera
que sea reutilizable. Es de decir es una ventaja en la cual al momento de programar ya no
tendramos que escribir otro cdigo diferente sino podemos utilizar la herencia.
Adems se haran programas relacionados con la vida real sin tener que pensar mucho al
respecto sobre cmo hacerlo as el usuario se le aria ms fcil de realizarlo.
La POO se me hace muy interesante de utilizar pues posee caractersticas muy
necesarias y ventajosas que nos facilitaran mucho en el momento de querer programar
algn objeto o algo en un software de verdad.