Professional Documents
Culture Documents
Introduccin
Abstraccin de datos
La abstraccin de datos permite no preocuparse de los detalles no esenciales. Existe en casi todos los
lenguajes de programacin. Las estructuras de datos y los tipos de datos son un ejemplo de abstraccin.
Los procedimientos y funciones son otro ejemplo. Slo recientemente han emergido lenguajes que soportan
sus propios tipos abstractos de datos (TAD), como Pascal, Ada, Modula-2 y C++.
Se puede definir POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial
de construccin.
Los objetos son en realidad como los tipos abstractos de datos. Un TAD es un tipo definido por el
programador junto con un conjunto de operaciones que se pueden realizar sobre ellos. Se denominan
abstractos para diferenciarlos de los tipos de datos fundamentales o bsicos.
En C se puede definir un tipo abstracto de datos utilizando typedef y struct y la implementacin de las
operaciones con un conjunto de funciones.
C++ tiene muchas facilidades para definir y utilizar un tipo TAD.
Al igual que los tipos de datos definidos por el usuario, un objeto es una coleccin de datos, junto con las
funciones asociadas, utilizadas para operar sobre esos datos. Sin embargo la potencia real de los objetos
reside en las propiedades que soportan: herencia, encapsulacin y polimorfismo, junto con los conceptos
bsicos de objetos, clases, mtodos y mensajes.
Definicin de objetos
Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. Los datos se
denominan miembros dato y las funciones mtodos o funciones miembro.
Los datos y las funciones se encapsulan en una nica entidad. Los datos estn ocultos y slo mediante las
funciones miembro es posible acceder a ellos.
Encapsulamiento
El empaque conjunto de datos y mtodos se llama encapsulamiento. El objeto esconde sus datos de los
dems objetos y permite el acceso a los datos mediante sus propios mtodos. Esto recibe el nombre de
ocultamiento de informacin. El encapsulamiento evita la corrupcin de los datos de un objeto. Si todos
los programas pudieran tener acceso a los datos de cualquier forma que quisieran los usuarios, los datos
se podran corromper o utilizar de mala manera. El encapsulado protege los datos del uso arbitrario y no
pretendido.
El encapsulado oculta los detalles de su implantacin interna a los usuarios de un objeto. Los usuarios
se dan cuenta de las operaciones que puede solicitar del objeto, pero desconocen los detalles de cmo
se lleva a cabo la operacin. Todos los detalles especficos de los datos del objeto y la codificacin de sus
operaciones estn fuera del alcance del usuario.
As, encapsulado es el resultado (o acto) de ocultar los detalles de implantacin de un objeto respecto de
su usuario.
Clases
Una clase es un tipo definido por el usuario que determina las estructuras de datos y las operaciones
asociadas con ese tipo. Cada vez que se construye un objeto de una clase, se crea una instancia de esa
clase. En general, los trminos objetos e instancias de una clase se pueden utilizar indistintamente.
Una clase es una coleccin de objetos similares y un objeto es una instancia de una definicin de una clase.
La comunicacin con el objeto se realiza a travs del paso de mensajes. El envo a una instancia de una
clase produce la ejecucin de un mtodo o funcin miembro. El paso de mensajes es el trmino utilizado
para referirnos a la invocacin o llamada de una funcin miembro de un objeto.
Los objetos pueden ser activados mediante la recepcin de mensajes. Un mensaje es simplemente una
peticin para que un objeto se comporte de una determinada manera, ejecutando una de sus funciones
miembro. La tcnica de enviar mensajes se conoce como paso de mensajes.
Ejemplo: Se tiene un objeto o1 con los siguientes miembros dato: nombre_alumno y curso y con las
funciones miembro: leer_nombre e imprimir. Si el objeto o1 recibe el mensaje imprimir, esto se expresa:
o1.imprimir()
La sentencia anterior se lee: "enviar mensaje imprimir al objeto o1". El objeto o1 reacciona al mensaje
ejecutando la funcin miembro de igual nombre que el mensaje.
Un programa orientado a objetos es una coleccin de clases. Necesitar una funcin principal que cree
objetos y comience la ejecucin mediante la invocacin de sus funciones miembro.
Taller de aplicaciones C++ Leonardo Bascun C.
Esta organizacin conduce a separar partes diferentes de una aplicacin en distintos archivos. La idea
consiste en poner la descripcin de la clase para cada una de ellas en un archivo separado. La funcin
principal tambin se pone en un archivo independiente. El compilador ensamblar el programa completo a
partir de los archivos independientes en una nica unidad.
En realidad, cuando se ejecuta un programa orientado a objetos, ocurren tres acciones:
Herencia
La herencia es la propiedad que permite a los objetos construirse a partir de otros objetos.
Una clase se puede dividir en subclases. En C++ la clase original se denomina clase base; las clases que
se definen a partir de la clase base, compartiendo sus caractersticas y aadiendo otras nuevas, se
denominan clases derivadas.
Las clases derivadas pueden heredar cdigo y datos de su clase base aadiendo su propio cdigo y datos
a la misma.
La herencia impone una relacin jerrquica entre clases en la cual una clase hija hereda de su clase padre.
Si una clase slo puede recibir caractersticas de otra clase base, la herencia se denomina herencia simple.
Si una clase recibe propiedades de ms de una clase base, la herencia se denomina herencia mltiple.
Polimorfismo
Reusabilidad
Cualidad que nos indica que partes del programa ( en este caso objetos) pueden ser reutilizados en la
confeccin de otros programas. Ello implica que los objetos definidos en un programa pueden ser
extrados del mismo e implantados en otro sin tener que realizar modificaciones importantes en el cdigo
del objeto. El objeto final es que el programador construya una librera de objetos que le permita realizar
programas basndose en la tcnica de cortar y pegar. Esta extrae (corta) cdigo de otras aplicaciones ya
realizadas y las implementa (pega) en la aplicacin a realizar donde, tras algunos retoques, la nueva
aplicacin estar lista para funcionar. Como podr observar el concepto de reusabilidad, permite reducir
el tiempo de realizacin , ganando en claridad, mantenibilidad y productividad