Está en la página 1de 5

Los programas orientados a objetos constan de objetos.

Los objetos de un
programa se comunican con cada uno de los restantes pasando mensajes.
Objeto: La idea fundamental en los lenguajes orientados a objetos es combinar
en una sola unidad datos y funciones que operan sobre esos datos Tal unidad se
denomina objeto. Entonces, dentro de los objetos residen los datos de los lenguajes de
programacin tradicional, tales como nmeros, arrays, cadenas y registros, as como
funciones o subrutinas que operan sobre ellos. Las funciones dentro del objeto son el
nico medio de acceder a los datos privados de un objeto. Si se desea leer un elemento
datos de un objeto se llama a la funcin miembro del objeto. Se lee el elemento y se
devuelve el valor. No se puede acceder a los datos directamente Los datos estn ocultos,
y eso asegura que no se pueden modificar accidentalmente por funciones externas al
objeto.
Un objeto es una entidad que contiene los atributos que describen el estado de un
objeto del mundo real y las acciones que se asocian con el objeto del mundo real.
Atributos: Datos o variables que caracterizan el estado de un objeto. Un atributo
posee un nombre y un valor de atributo. Los objetos pueden constar de tipos primitivos
o de tipos complejos.
Mtodos: Procedimientos o acciones que cambian el estado de un objeto.
Describen el comportamiento asociado a un objeto. Representan las acciones que
pueden realizarse por un objeto o sobre un objeto. Cada mtodo tiene un nombre y un
cuerpo que realiza la accin o comportamiento asociado con el nombre del mtodo.
El objeto tiene cierta informacin y conoce cmo realizar ciertas operaciones. La
encapsulacin de operaciones e informacin es muy importante. Los mtodos de un
objeto slo pueden manipular directamente datos asociados con ese objeto. Dicha
encapsulacin es la propiedad que permite incluir en una sola entidad (el mdulo u
objeto) la informacin (los datos o atributos) y las operaciones (los mtodos o
funciones) que operan sobre esa informacin.
Un objeto tiene estado, comportamiento y una identidad.
El estado del objeto comprende las propiedades estticas del objeto mas los
valores actuales de cada una de esas propiedades. Ej: el objeto CAJA DE AHORRO
tiene los atributos nmero, titular y saldo que constituyen su estado interno. Estas
son propiedades estticas. Por otro lado, el contenido actual de cada atributo por ej.
(2345/13 'PEDRO' y 1200.56) representan el valor dinmico de sus propiedades, y
son afectados por el comportamiento del objeto.
Al tener un estado, implica que todo objeto ocupa una cierta cantidad de
espacio,
ya sea en el mundo fsico o en la memoria de una computadora.
El comportamiento de un objeto es como el objeto acta y reacciona, en
trminos de sus cambios de estados y de los mensajes que pasa. Es decir que, el
comportamiento de un objeto est completamente definido por sus acciones. Por
ej.: el comportamiento del objeto CAJA DE AHORRO esta compuesto por las acciones
SALDO, EXTRAER, DEPOSITAR etc.
La identidad es la propiedad de un objeto que lo distingue de todos los otros
objetos.
Por ej.: un objeto CAJA DE AHORRO es distinto de otro objeto CAJA DE AHORRO.
Pueden o no tener el mismo nmero, titular o saldo. El primero puede tener como
titular a 'PEPE y el segundo a 'JUAN'.

Mtodo y mensajes: Los procedimientos y funciones,


denominados mtodos o funciones miembro, residen en el
objeto y determinan cmo actan los objetos cuando
reciben un mensaje. Un mensaje es la accin que hace un

objeto. Un mtodo es el procedimiento o funcin que se


invoca para actuar sobre un objeto Un mtodo especifica
cmo se ejecuta un mensaje.
Los mensajes que recibe el objeto son los nicos conductos que conectan el
objeto con el mundo externo Los datos de un objeto estn disponibles para ser
manipulados slo por los mtodos del propio objeto.
Un mensaje consiste en el nombre de una operacin y de los argumentos por
ella requeridos.
Los mensajes constituyen el medio por el cual los objetos se comunican con
el fin de lograr una accin cooperativa. Cuando un objeto enva un mensaje a otro
objeto, el emisor le est requiriendo al receptor que realice la operacin nombrada
y (posiblemente) devolverle alguna informacin. Cuando el receptor recibe el
mensaje, realiza la operacin requerida en la forma en que sepa hacerla. La peticin
que hace el emisor no especifica cmo debe ser realizada la operacin. Tal
informacin est siempre oculta para el emisor.

Clases: Una clase es la descripcin de un conjunto de objetos; consta


de mtodos y datos que resumen caractersticas comunes de un conjunto de
objetos. Se pueden definir muchos objetos de la misma clase Dicho de otro
modo, una clase es la declaracin de un tipo objeto.
Un objeto es una instancia de una clase.
Una clase es una coleccin de objetos similares.
Una clase puede tener muchas instancias y cada una es un objeto
independiente.
Una clase es una plantilla que se utiliza para describir uno o ms objetos de
un mismo tipo.
Mientras que un objeto es una entidad concreta que existe en el tiempo y el
espacio, y que lleva a cabo un determinado rol dentro del sistema en general; una
clase representa solo una abstraccin, la "esencia" de un objeto, que captura la
estructura y el comportamiento de todos los objetos que a ella pertenecen. Por lo
tanto, podemos hablar de la clase Mamfero, que representa las caractersticas
comunes a todos los mamferos. Y para identificar a un mamfero en particular en
dicha clase, debemos hablar de "este mamfero" o "aquel mamfero".

Herencia: la capacidad de un objeto para utilizar las estructuras de


datos y los mtodos previstos en antepasados o ascendientes. El objetivo
final es la reutilizabilidad o reutilizacin, es decir reutilizar cdigo
anteriormente ya desarrollado.
La herencia supone una clase base y una jerarqua de clases que
contienen las clases derivadas de la clase base. Las clases derivadas pueden
heredar el cdigo y los datos de su clase base, aadiendo su propio cdigo
especial y datos a ellas, incluso cambiar aquellos elementos de la clase base
que necesita sean diferentes.
Se puede decir que una clase de objetos es un conjunto de objetos
que comparten caractersticas y comportamientos comunes. Estas
caractersticas y comportamientos se definen en una clase base. Las clases
que heredan propiedades de una clase base pueden a su vez servir como
definiciones base de otras clases Las jerarquas de clases se organizan en
forma de rbol.

Las subclases pueden REIMPLEMENTAR O SOBRESCRIBIR


cualquier mtodo que elija.
Existen 2 tipos de herencias, por un lado, encontramos la herencia
simple y por otro la herencia mltiple.
En la simple, una subclase puede heredar datos y mtodos de una
nica clase, as como aadir o quitar comportamientos de la clase base.
En la mltiple, la subclase adquiere datos y mtodos de ms de una
clase.
Ej: H.Simple

Crculo

Figura

Rectngulo

Tringulo

Rectngulo
redondeado

H.Mltiple

Persona

Profesor

Investigador

Profesor
universitario

En general, prcticamente todo lo que se puede hacer con herencia


mltiple se puede hacer con herencia simple, aunque a veces resulta ms
difcil. Una dificultad surge con la herencia mltiple cuando se combinan
diferentes tipos de objetos, cada uno de los cuales define mtodos o campos
iguales.
Clases abstractas: cuando se disea un modelo orientado a objetos es
til introducir clases a cierto nivel que pueden no existir en la realidad pero
que son construcciones conceptuales tiles Estas clases se conocen como
clases abstractas. Una clase abstracta normalmente ocupa una posicin
adecuada en la jerarqua de clases que le permite actuar como un depsito
de mtodos y atributos compartidos para las subclases de nivel
inmediatamente inferior

Las clases abstractas no tienen instancias directamente Se utilizan


para agrupar otras clases y capturar informacin que es comn al grupo Sin
embargo, las subclases de clases abstractas que corresponden a objetos del
mundo real pueden tener instancias.
En resumen, es una clase que sirve como clase base comn, pero no
tendr instancias.
Las clases que no han sido creadas para producir instancias de s mismas se
llaman clases abstractas. Existen para que el comportamiento y estructura interna
comunes a una determinada variedad de clases pueda ser ubicado en un lugar
comn, donde pueda ser definido una vez (y ms tarde, mejorado o arreglado de
una sola vez, s es necesario), y reusado una y otra vez. Las clases abstractas
especifican en forma completa su comportamiento pero no necesitan estar
completamente implementadas. Puede tambin especificar mtodos que deban ser
redefinidos por cualquier subclase. Un ejemplo de esto puede ser la implementacin
de cierto comportamiento por defecto para prevenir un error del sistema, pero dicha
implementacin debe ser redefinida o aumentada por los mtodos implementados
en las subclases. Las subclases concretas heredan el comportamiento y estructura
interna de sus superclases abstractas, y agregan otras habilidades especficas para
sus propsitos. Puede ser que necesiten redefinir la implementacin por defecto de
sus superclases abstractas, para poder comportarse de alguna forma que tenga
sentido para la aplicacin de la cual son parte. Estas clases completamente
implementadas crean instancias de s mismas para hacer el trabajo til en el
sistema.

Ventajas de la POO que se basan en la herencia:


Sobrecarga: mtodos con el mismo nombre pero diferente nmero o
tipo de parmetros.

La sobrecarga de mtodos se refiere a la posibilidad de tener dos o ms mtodos


con el mismo nombre pero funcionalidad diferente. Es decir, dos o ms mtodos con el
mismo nombre realizan acciones diferentes. La forma de diferenciar varios mtodos
sobrecargados es a travs de sus parmetros, ya sea por la cantidad, el tipo o el orden de
los mismos.

Polimorfismo: mtodos con el mismo nombre pero segn qu objeto lo


llame ejecuta un cdigo u otro. Una sobrecarga es una clase de polimorfismo. En un
sentido ms general, el polimorfismo supone que un mismo mensaje puede producir
acciones (resultados) totalmente diferentes cuando se reciben por objetos
diferentes.
Supongamos un tipo objeto llamado vehculo y tipos de objetos derivados
llamados bicicleta, automvil, moto y embarcacin Si se enva un mensaje conducir
al objeto vehculo, cualquier tipo que herede de vehculo puede tambin aceptar
ese mensaje Al igual que sucede en la vida real, el mensaje conducir reaccionar de
modo diferente en cada objeto, debido a que cada vehculo requiere una forma
distinta de conducir.
Redefinicin, anulacin/sustitucin: Redefinicin: Una subclase
puede redefinir un mtodo de la superclase simplemente definiendo un mtodo con
el mismo nombre. El mtodo en la subclase redefine y reemplaza al mtodo de la
superclase. Hay varias razones por las que puede ser til redefinir un mtodo: para
especificar comportamiento que depende de la subclase, para lograr mayor
performance a travs de un algoritmo ms eficiente para la subclase o guardando
un atributo de clculo dentro de la estructura interna del objeto, etc. Por ejemplo:
en una aplicacin en la que sea necesario manipular figuras geomtricas,
podramos tener la clase POLIGONO y la subclase RECTANGULO, entre otros
mensajes tanto un POLIGONO como un RECTANGULO deberan informar cual es su

permetro a travs del mensaje PERIMETRO. En el caso del polgono se podra


implementar como la suma de la longitud de sus lados, mientras que en el
rectngulo se podra redefinir el mensaje permetro para se lo calcule como el doble
de la suma de la longitud de dos lados consecutivos.
Se pueden redefinir mtodos y valores por defecto para los atributos. Toda
redefinicin debe preservar la cantidad o tipo de parmetros utilizados en un
mensaje y el tipo del valor devuelto. Nunca debe redefinirse un mtodo de manera
que sea semnticamente inconsistente con el originalmente heredado. Una
subclase es un caso especial de su superclase y debera ser compatible con ella en
todo aspecto.

Los atributos y mtodos definidos en la superclase se


heredan por las subclases Sin embargo, si la propiedad se
define nuevamente en la subclase, aunque se haya definido
anteriormente a nivel de superclase; entonces la definicin
realizada en la subclase es la utilizada en esa subclase.
Entonces se dice que anulan las correspondientes
propiedades de la superclase Esta propiedad se denomina
anulacin o sustitucin (overriding).

Supongamos que ciertos atributos y mtodos definidos


en la clase A se redefinen en la clase C Las clases E, F, G y
H heredan estos atributos y mtodos La cuestin que se
produce es si estas clases heredan las definiciones dadas
en la clase A o las dadas en la clase C El convenio adoptado
es que una vez que un atributo o mtodo se redefine en un
nivel de clases especfico, entonces cualquier hijo de esa
clase, o sus hijos en cualquier profundidad, utilizan este
mtodo o atributo redefinido Por consiguiente, las clases E,
F, G y H utilizarn la redefinicin dada en la clase C, en
lugar de la definicin dada en la clase A.