Академический Документы
Профессиональный Документы
Культура Документы
1Introduccin
2Origen
3Conceptos fundamentales
4Caractersticas de la POO
5Resumen
7Vase tambin
8Notas y referencias
9Enlaces externos
Introduccin[editar]
Los objetos son entidades que tienen un determinado "estado", "comportamiento
(mtodo)" e "identidad":
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con
otras palabras, es su identificador (concepto anlogo al de identificador de
una variable o una constante).
Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros
objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al
poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de
mecanismos de interaccin llamados mtodos, que favorecen la comunicacin entre ellos.
Esta comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta
caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separa el
estado y el comportamiento.
Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados
por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos
para poder tratar los atributos con los que cuenta. El programador debe pensar
Origen[editar]
Los conceptos de la POO tienen origen en Simula 67, un lenguaje diseado para hacer
simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cmputo
Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron
confundidas por la explosin combinatoria de cmo las diversas cualidades de diferentes
naves podan afectar unas a las otras. La idea surgi al agrupar los diversos tipos de
naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir
sus "propios" datos y comportamientos. Fueron refinados ms tarde en Smalltalk,
desarrollado en Simula en Xerox PARC (cuya primera versin fue escrita sobre Basic) pero
diseado para ser un sistema completamente dinmico en el cual los objetos se podran
crear y modificar "sobre la marcha" (en tiempo de ejecucin) en lugar de tener un sistema
basado en programas estticos.
La POO se fue convirtiendo en el estilo de programacin dominante a mediados de
los aos 1980, en gran parte debido a la influencia de C++, una extensin del lenguaje de
programacin C. Su dominacin fue consolidada gracias al auge de las interfaces grficas
de usuario, para las cuales la POO est particularmente bien adaptada. En este caso, se
habla tambin de programacin dirigida por eventos.
Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes
existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp ms Pascal, entre otros. La
adicin de estas caractersticas a los lenguajes que no fueron diseados inicialmente para
ellas condujo a menudo a problemas de compatibilidad y en la capacidad de
mantenimiento del cdigo. Los lenguajes orientados a objetos "puros", por su parte,
carecan de las caractersticas de las cuales muchos programadores haban venido a
depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos
lenguajes basados en mtodos orientados a objetos, pero permitiendo algunas
caractersticas imperativas de maneras "seguras". El lenguaje de programacin Eiffel de
Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos,
pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la
aparicin de Internet y a la implementacin de la mquina virtual Java en la mayora
de navegadores web. PHP en su versin 5 se ha modificado; soporta una orientacin
completa a objetos, cumpliendo todas las caractersticas propias de la orientacin a
objetos.
Conceptos fundamentales[editar]
La POO es una forma de programar que trata de encontrar una solucin a estos
problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya
conocidos. Entre ellos destacan los siguientes:
Clase
Caractersticas de la
POO[editar]
Existe un acuerdo acerca de qu
caractersticas contempla la "orientacin a
objetos". Las caractersticas siguientes son
las ms importantes:1
Abstraccin
Denota las caractersticas esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y
"comunicarse" con otros objetos en el sistema sin revelar "cmo" se implementan
estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin
ser abstrados, y, cuando lo estn, una variedad de tcnicas son requeridas para
ampliar una abstraccin. El proceso de abstraccin permite seleccionar las
caractersticas relevantes dentro de un conjunto e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin
es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante
ella podemos llegar a armar un conjunto de clases que permitan modelar la
realidad o el problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin
(diseo estructurado) de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultacin, principalmente porque se suelen
emplear conjuntamente.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el
mismo nombre; al llamarlos por ese nombre se utilizar el comportamiento
correspondiente al objeto que se est usando. O, dicho de otro modo, las
referencias y las colecciones de objetos pueden contener objetos de diferentes
tipos, y la invocacin de un comportamiento en una referencia producir el
comportamiento correcto para el tipo real del objeto referenciado. Cuando esto
ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin
tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms
estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y
la sobrecarga de operadores de C++.
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 enrejadosque 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.
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
Resumen[
editar]
La POO es un
paradigma
surgido en
los aos 1970,
que utiliza
objetos como
elementos
fundamentales
en la
construccin de
la solucin. Un
objeto es una
abstraccin de
algn hecho o
ente del mundo
real, con
atributos que
representan sus
caractersticas o
propiedades, y
mtodos que
emulan su
comportamiento
o actividad.
Todas las
propiedades y
mtodos
comunes a los
objetos se
encapsulan o
agrupan en
clases. Una
clase es una
plantilla, un
prototipo para
crear objetos; en
general, se dice
que cada objeto
es una instancia
o ejemplar de
una clase.
Algunos
lenguajes
orientado
sa
objetos[edi
tar]
Simula (1967)
es aceptado
como el primer
lenguaje que
posee las
caractersticas
principales de un
lenguaje
orientado a
objetos. Fue
creado para
hacer programas
de simulacin,
en donde los
"objetos" son la
representacin
de la
informacin ms
importante.
Smalltalk (1972
a 1980) es
posiblemente el
ejemplo
cannico, y con
el que gran parte
de la teora de la
programacin
orientada a
objetos se ha
desarrollado.
Entre los
lenguajes
orientados a
objetos se
destacan los
siguientes:
ABAP2
ABL3
ActionScript
ActionScript
3
Ada
C++
C
Sharp (C#)
Clarion
Clipper4
Object
Pascal (Emb
arcadero
Delphi)
Gambas
GObject
Genie
Harbour
Eiffel
Fortran 90/9
5
Java
JavaScript5
Lexico6
Objective-C
Ocaml
Oz
Pauscal (en
espaol)
Perl7 8
PHP9
PowerBuilde
r
Processing.1
0
Python
Ruby
Self
Smalltalk11
Magik (Smal
lWorld)
Vala
VB.NET
Visual
FoxPro12
Visual
Basic 6.0
Visual
DataFlex
Visual
Objects
XBase++
DRP
Scala13 14
Muchos de estos
lenguajes de
programacin no
son puramente
orientados a
objetos, sino que
son hbridos que
combinan la
POO con otros
paradigmas.
Al igual que C+
+, otros
lenguajes, como
OOCOBOL,
OOLisp,
OOProlog
y Object REXX,
han sido
creados
aadiendo
extensiones
orientadas a
objetos a un
lenguaje de
programacin
clsico.
Un nuevo paso
en la abstraccin
de paradigmas
de programacin
es
la Programacin
Orientada a
Aspectos (POA).
Aunque es
todava una
metodologa en
estado de
maduracin,
cada vez atrae a
ms
investigadores e
incluso
proyectos
comerciales en
todo el mundo.
INTRODUCCION
Actualmente una de las reas ms candentes en la industria y en el mbito acadmico es la orientacin a
objetos. La orientacin a objetos promete mejoras de amplio alcance en la forma
de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a
los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta
de portabilidad del cdigo y reusabilidad, cdigo que es dificil de modificar, ciclos de desarrollo largos y
tecnicas de codificacion no intuituvas.
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas basicas: debe estar
basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen
uno o dos de estos puntos; muchos menos cumplen los tres. La barrera ms difcil de sortear es
usualmente la herencia.
El concepto de programacin orientada a objetos (OOP) no es nuevo, lenguajes clsicos como SmallTalk
se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de
objetos y que la resolucin del problema se realiza en trminos de objetos, un lenguaje se dice que est
basado en objetos si soporta objetos como una caracterstica fundamental del mismo.
El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir un objeto
como un conjunto complejo de datos y programas que poseen estructura y forman parte de una
organizacin.
Esta definicin especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es
un dato simple, sino que contiene en su interior cierto nmero de componentes bin estructurados. En
segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organizacin jerrquica o
de otro tipo.
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cpsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - METODOS
Cada uno de estos componentes desempea un papel totalmente independiente:
Las relaciones permiten que el objeto se insterte en la organizacin y estn formadas esencialmente por
punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma
organizacin y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto
pueden ser heredadas a sus descendientes en la organizacin.
Los mtodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarn
incorporados en forma de programas (cdigo) que el objeto es capaz de ejecutar y que tambin pone a
disposicin de sus descendientes a travs de la herencia.
Encapsulamiento y ocultacin
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y programas, todos
ellos relacionados entre s, como si estuvieran encerrados conjuntamente en una cpsula. Esta propiedad
(encapsulamiento), es una de las caractersticas fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores
conozcan cmo est distribuda la informacin o qu informacin hay disponible. Esta propiedad de los
objetos se denomina ocultacin de la informacin.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que
contiene. Si as fuera no se podra hacer gran cosa con l. Lo que sucede es que las peticiones de
informacin a un objeto. deben realizarse a travs de mensajes dirigidos a l, con la orden de realizar la
operacin pertinente. La respuesta a estas ordenes ser la informacin requerida, siempre que el objeto
considere que quien enva el mensaje est autorizado para obtenerla.
El hecho de que cada objeto sea una cpsula facilita enormemente que un objeto determinado pueda ser
transportado a otro punto de la organizacin, o incluso a otra organizacin totalmente diferente que
precise de l. Si el objeto ha sido bien construdo, sus mtodos seguirn funcionando en el nuevo entorno
sin problemas. Esta cualidad hace que la OOP sea muy apta para la reutilizacin de programas.
Organizacin de los objetos
En principio, los objetos forman siempre una organizacin jerrquica, en el sentido de que ciertos objetos
son superiores a otros de cierto modo.
Existen varios tipos tipos de jerarquas: sern simples cuando su estructura pueda ser representada por
medio de un "arbol". En otros casos puede ser ms compleja.
En cualquier caso, sea la estructura simple o compleja, podrn distinguirse en ella tres niveles de objetos.
-La raz de la jerarqua. Se trata de un objeto nico y especial. Este se caracterza por estar en el nivel
ms alto de la estructura y suele recibir un nombre muy genrico, que indica su categora especial, como
por ejemplo objeto madre, Raz o Entidad.
-Los objetos intermedios. Son aquellos que descienden directamente de la raz y que a su vez tienen
descendientes. Representan conjuntos o clases de objetos, que pueden ser muy generales o muy
especializados, segn la aplicacin. Normalmente reciben nombres genricos que denotan al conjunto de
objetos que representan, por ejemplo, VENTANA, CUENTA, FICHERO. En un conjunto reciben el nombre
de clases o tipos si descienden de otra clase o subclase.
-Los objetos terminales. Son todos aquellos que descienden de una clase o subclase y no tienen
descendientes. Suelen llamarse casos particulares, instancias o tems porque representan los elementos
del conjunto representado por la clase o subclase a la que pertenecen.
Veamos ahora en detalle los tres elementos mencionados en "Estructura de un Objeto".
1. RELACIONES
Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con
aquellos que forman parte de la misma organizacin.
Las hay de dos tipos fundamentales:
-Relaciones jerrquicas. Son esenciales para la existencia misma de la aplicacin porque la construyen.
Son bidireccionales, es decir, un objeto es padre de otro cuando el primer objeto se encuentra situado
inmediatamente encima del segundo en la organizacin en la que ambos forman parte; asimismo, si un
objeto es padre de otro, el segundo es hijo del primero (en la fig. 2, B es padre de D,E y F, es decir, D,E y
F son hijos de B; en la fig. 3, los objetos B y C son padres de F, que a su vez es hijo de ambos).
Una organizacin jerrquica simple puede definirse como aquella en la que un objeto puede tener un solo
padre, mientras que en una organizacion jerrquica compleja un hijo puede tener varios padres).
-Relaciones semnticas. Se refieren a las relaciones que no tienen nada que ver con la organizacin de la
que forman parte los objetos que las establecen. Sus propiedades y consecuencia solo dependen de los
objetos en s mismos (de su significado) y no de su posicin en la organizacin.
Se puede ver mejor con un ejemplo: supongamos que vamos a construir un diccionario informatizado que
permita al usuario obtener la definicin de una palabra cualquiera. Supongamos que, en dicho diccionario,
las palabras son objetos y que la organizacin jerrquica es la que proviene de forma natural de la
estructura de nuestros conocimientos sobre el mundo.
La raz del diccionario podra llamarse TEMAS. De ste trmino genrico descendern tres grandes
ramas de objetos llamadas VIDA, MUNDO y HOMBRE. El primero (vida) comprender
las ciencias biolgicas: Biologa y Medicina. El segundo (mundo), las ciencias de la naturaleza inerte:
las Matemticas, la Fsica, la Qumica y la Geologa. El tercero (hombre) comprender las ciencias
humanas: la Geografa, la Historia, etc.
Veamos un ejemplo: estableceremos la relacin trabajo entre los objetos NEWTON y OPTICA y la
interpretaremos diciendo que significa que Newton trabaj en ptica (vase la fig. 4). La relacin es,
evidentemente, semntica, pus no establece ninguna connotacin jerrquica entre NEWTON y OPTICA
y su interpretacin depende exclusivamente del significado de ambos objetos.
La existencia de esta relacin nos permitir responder a preguntas como:
Quin trabaj en ptica?
En qu trabaj Newton?
Quien trabaj en Fsica?
Las dos primeras se deducen inmediatamente de la existencia de la relacin trabajo. Para la tercera
observamos que si Newton trabaj en ptica automticamente sabemos que trabaj en Fsica, por ser
ptica una rama de la Fsica (en nuestro diccionario, el objeto OPTICA es hijo del objeto FISICA).
Entonces gracias a la OOP podemos responder a la tercera pregunta sin necesidad de establecer una
relacin entre NEWTON y FISICA, apoyandonos slo en la relacin definida entre NEWTON y OPTICA y
en que OPTICA es hijo de FISICA. De este modo se elimina toda redundancia innecesaria y la cantidad
de informacin que tendremos que definir para todo el diccionario ser mnima.
2. PROPIEDADES
Todo objeto puede tener cierto nmero de propiedades, cada una de las cuales tendr, a su vez, uno o
varios valores. En OOP, las propiedades corresponden a las clsicas "variables" de la programacin
estructurada. Son, por lo tanto, datos encapsulados dentro del objeto, junto con los mtodos (programas)
y las relaciones (punteros a otros objetos). Las propiedades de un objeto pueden tener un valor nico o
pueden contener un conjunto de valores mas o menos estructurados (matrices, vectores, listas, etc.).
Adems, los valores pueden ser de cualquier tipo (numrico, alfabtico, etc.) si el sistema de
programacin lo permite.
Pero existe una diferencia con las "variables", y es que las propiedades se pueden heredar de unos
objetos a otros. En consecuencia, un objeto puede tener una propiedad de maneras diferentes:
-Propiedades propias. Estn formadas dentro de la cpsula del objeto.
-Propiedades heredadas. Estan definidas en un objeto diferente, antepasado de ste (padre,"abuelo",
etc.). A veces estas propiedades se llaman propiedades miembro porque el objeto las posee por el mero
hecho de ser miembro de una clase.
3. METODOS
Una operacin que realiza acceso a los datos. Podemos definir mtodo como un programa procedimental
o procedural escrito en cualquier lenguaje, que est asociado a un objeto determinado y cuya ejecucin
slo puede desencadenarse a travs de un mensaje recibido por ste o por sus descendientes.
Son sinnimos de 'mtodo' todos aquellos trminos que se han aplicado tradicionalmente a los
programas, como procedimiento, funcin, rutina, etc. Sin embargo, es conveniente utilizar el trmino
'mtodo' para que se distingan claramente las propiedades especiales que adquiere un programa en el
entorno OOP, que afectan fundamentalmente a la forma de invocarlo (nicamente a travs de un
Luego, en 6 meses 1 ao se da cuenta que las clases que se establecieron no son posibles; en ese
caso ser necesario reestructurar la jerarqua de clases devastando totalmente la planificacin original.
Performance. En un sistema donde todo es un objeto y toda interaccion es a travs de mensajes, el
trfico de mensajes afecta la performance. A medida que la tecnologa avanza y la velocidad de
microprocesamiento, potencia y tamao de la memoria aumentan, la situacion mejorar; pero en la
situacin actual, un diseo de una aplicacin orientada a objetos que no tiene en cuenta la performance
no ser viable comercialmente.
Idealmente, habra una forma de atacar estos problemas eficientemente al mismo tiempo que se obtienen
los beneficios del desarrollo de una estrategia orientada a objetos. Deberia existir una metodologa fcil
de aprender e independiente del lenguaje, y facil de reestructurar que no drene la performance del
sistema .
Bibliografa consultada
Revista COMPU MAGAZINE, Nmero 51, Octubre '92
Revista COMPU MAGAZINE, Nmero 50, Septiembre '92
(y diversos apuntes conseguidos de distintas publicaciones)
Lucas
Qu es la programacion
orientada a objetos
24 de julio de 2001
116 Comentarios
Desarrollo
Motivacin
Durante aos, los programadores se han dedicado a construir aplicaciones muy
parecidas que resolvan una y otra vez los mismos problemas. Para conseguir
que los esfuerzos de los programadores puedan ser utilizados por otras
personas se cre la POO. Que es una serie de normas de realizar las cosas de
manera que otras personas puedan utilizarlas y adelantar su trabajo, de
manera que consigamos que el cdigo se pueda reutilizar.
La POO no es difcil, pero es una manera especial de pensar, a veces subjetiva
de quien la programa, de manera que la forma de hacer las cosas puede ser
diferente segn el programador. Aunque podamos hacer los programas de
formas distintas, no todas ellas son correctas, lo difcil no es programar
orientado a objetos sino programar bien. Programar bien es importante porque
as nos podemos aprovechar de todas las ventajas de la POO.
objetos utilizan muchos objetos para realizar las acciones que se desean
realizar y ellos mismos tambin son objetos. Es decir, el taller de coches ser
un objeto que utilizar objetos coche, herramienta, mecnico, recambios, etc.
Clases en POO
Las clases son declaraciones de objetos, tambin se podran definir como
abstracciones de objetos. Esto quiere decir que la definicin de un objeto es la
clase. Cuando programamos un objeto y definimos sus caractersticas y
funcionalidades en realidad lo que estamos haciendo es programar una clase.
En los ejemplos anteriores en realidad hablbamos de las clases coche o
fraccin porque slo estuvimos definiendo, aunque por encima, sus formas.
Propiedades en clases
Objetos en POO
Con la palabra new especificamos que se tiene que crear una instancia de la
clase que sigue a continuacin. Dentro de los parntesis podramos colocar
parmetros con los que inicializar el objeto de la clase coche.
Estados en objetos
Otras cosas
Hay mucho todava que conocer de la POO ya que slo hemos hecho
referencia a las cosas ms bsicas. Tambin existen mecanismos como la
herencia y el polimorfismo que son unas de las posibilidades ms potentes de
la POO.
Introduccin
Cuando se escribe un programa en un lenguaje orientado a objetos, definimos
una plantilla o clase que describe las caractersiticas y el comportamiento de
un conjunto de objetos similares. La clase automvil describe las
caractersticas comunes de todos los automviles: sus atributos y su
comportamiento. Los atributos o propiedades se refieren a la marca o
fabricante, el color, las dimensiones, si tienen dos, tres, cuatro o ms puertas,
la potencia, si utiliza como combustible la gasolina o gasoil, etc. El
Atributos
Los atributos son las caractersiticas individuales que diferencian un objeto de
otro y determinan su apariencia, estado u otras cualidades. Los atributos se
guardan en variables denominadas de instancia, y cada objeto particular puede
tener valores distintos para estas variables.
Las variables de instancia tambin denominados miembros dato, son
declaradas en la clase pero sus valores son fijados y cambiados en el objeto.
Adems de las variables de instancia hay variables de clase, las cuales se
aplican a la clase y a todas sus instancias. Por ejemplo, el nmero de ruedas de
un automvil es el mismo cuatro, para todos los automviles.
Comportamiento
El comportamiento de los objetos de una clase se implementa mediante
funciones miembro o mtodos. Un mtodo es un conjunto de instrucciones
que realizan una determinada tarea y son similares a las funciones de los
lenguajes estructurados.
Del mismo modo que hay variables de instancia y de clase, tambin hay
mtodos de instancia y de clase. En el primer caso, un objeto llama a un
mtodo para realizar una determinada tarea, en el segundo, el mtodo se llama
desde la propia clase.
El proyecto
La clase
Para crear una clase se utiliza la palabra reservada class y a continuacin el
nombre de la clase. La definicin de la clase se pone entre las llaves de
apertura y cierre. El nombre de la clase empieza por letra mayscula.
class Rectangulo{
//miembros dato
//funciones miembro
}
class Rectangulo{
int x;
int y;
int ancho;
int alto;
//faltan las funciones miembro
}
Cuando una funcin no devuelve nada se dice de tipo void. Para llamar a la
funcin, se escribe
objeto.nombreFuncion(arg1, arg2, arg3);
Una funcin puede devolver un valor (un tipo de dato primitivo o un objeto).
double funcion(....){
double suma=0.0;
//sentencias...
return suma;
}
Como se tienen que cumplir las cuatro condiciones a la vez, se unen mediante
el operador lgico AND simbolizado por &&.
class Rectangulo{
int x;
int y;
int ancho;
int alto;
boolean estaDentro(int x1, int y1){
if((x1>x)&&(x1<x+ancho)&&(y1>y)&&(y1<y+ancho)){
return true;
}
return false;
}
}
Los contructores
Un objeto de una clase se crea llamando a una funcin especial denominada
constructor de la clase. El constructor se llama de forma automtica cuando se
crea un objeto, para situarlo en memoria e inicializar los miembros dato
declarados en la clase. El constructor tiene el mismo nombre que la clase. Lo
especfico del constructor es que no tiene tipo de retorno.
class Rectangulo{
int x;
int y;
int ancho;
int alto;
Rectangulo(int x1, int y1, int w, int h){
x=x1;
y=y1;
ancho=w;
alto=h;
}
}
int y;
int ancho;
int alto;
Rectangulo(int w, int h){
x=0;
y=0;
ancho=w;
alto=h;
}
}
x+=dx;
y+=dy;
}
boolean estaDentro(int x1, int y1){
if((x1>x)&&(x1<x+ancho)&&(y1>y)&&(y1<y+ancho)){
return true;
}
return false;
}
Los objetos
Para crear un objeto de una clase se usa la palabra reservada new.
Por ejemplo,
Rectangulo rect1=new Rectangulo(10, 20, 40, 80);
new reserva espacio en memoria para los miembros dato y devuelve una
referencia que se guarda en la variable rect1 del tipo Rectangulo que
denominamos ahora objeto. Dicha sentencia, crea un objeto
denominado rect1 de la clase Rectangulo llamando al segundo constructor en
el listado. El rectngulo estar situado en el punto de coordenadas x=10, y=20;
tendr una anchura de ancho=40 y una altura de alto=80.
Rectangulo rect2=new Rectangulo(40, 80);
objeto.miembro;
Por ejemplo, podemos acceder al miembro dato ancho, para cambiar la
anchura de un objeto rectngulo.
rect1.ancho=100;
El rectngulo rect1 que tena inicialmente una anchura de 40, mediante esta
sentencia se la cambiamos a 100.
Desde un objeto llamamos a las funciones miembro para realizar una
determinada tarea. Por ejemplo, desde el rectngulo rect1 llamamos a la
funcin calcularArea para calcular el rea de dicho rectngulo.
rect1.calcularArea();
rect1.dentro() devuelve true si el punto (20, 30) que se le pasa a dicha funcin
miembro est en el interior del rectngulo rect1, ejecutndose la primera
sentencia, en caso contrario se ejecuta la segunda.
Como veremos ms adelante no siempre es posible acceder a los miembros, si
establecemos controles de acceso a los mismos.
public class RectanguloApp1 {
public static void main(String[] args) {
Rectangulo rect1=new Rectangulo(10, 20, 40, 80);
Rectangulo rect2=new Rectangulo(40, 80);
Rectangulo rect3=new Rectangulo();
int medidaArea=rect1.calcularArea();
System.out.println("El rea del rectngulo es "+medidaArea);
rect2.desplazar(10, 20);
if(rect1.estaDentro(20,30)){
System.out.println("El punto est dentro del
rectngulo");
}else{
System.out.println("El punto est fuera del
rectngulo");
}
}
}
La vida de un objeto
En el lenguaje C++, los objetos que se crean con new se han de eliminar
con delete. new reserva espacio en memoria para el objeto y delete libera
dicha memoria. En el lenguaje Java no es necesario liberar la memoria
reservada, el recolector de basura (garbage collector) se encarga de hacerlo
por nosotros, liberando al programador de una de las tareas que ms
quebraderos de cabeza le producen, olvidarse de liberar la memoria reservada.
Veamos un ejemplo
public class UnaClase {
public static void main(String[] args) {
Image granImagen=creaImagen();
mostrar(graImagen);
while(condicion){
calcular();
}
}
}
Si escribimos
rect3=rect1;
Identificadores
Cmo se escriben los nombres de la variables, de las clases, de las funciones,
etc., es un asunto muy importante de cara a la comprensin y el
mantenimiento de cdigo. En la introduccin a los fundamentos del lenguaje
Java hemos tratado ya de los identificadores.
El cdigo debe de ser tanto ms fcil de leer y de entender como sea posible.
Alguien que lea el cdigo, incluso despus de cierto tiempo, debe ser capaz de
entender lo que hace a primera vista, aunque los detalles internos, es decir,
cmo lo hace, precise un estudio detallado.
Vemos primero un ejemplo que muestra un cdigo poco legible y por tanto,
muy difcil de mantener
public class Cuen{
private int ba;
Cuen(int ba){
this.ba=ba;
}
public void dep(int i){
ba+=i;
}
public boolean ret(int i){
if(ba>=i){
ba-=i;
return true;
}
return false;
}
public int get(){
return ba;
}
Este es una programa sencillo de una cuenta bancaria. El tipo de dato puede
ser entero (int o long), si la unidad monetaria tiene poco valor como la peseta,
o un nmero decimal (double) si la unidad monetaria es de gran valor como el
Euro y el Dlar.
El cdigo de las funciones miembro es muy sencillo y su significado se hace
evidente al leer el programa. La funcin retirar es de tipo boolean, ya que no
(false) estamos autorizados a retirar una cantidad mayor que la existente en
ese momento en el banco. Sin embargo, si (true) estamos autorizados a retirar
una cantidad menor que la que tenemos en la cuenta.
La programacin orientada a objetos (POO) es una forma de programacin en
computadoras que tiene surge los aos 70 pero tiene un desarrollo sorprendente los aos
90 al utilizarlo en las microcomputadoras. Se diferencia de la programacin clsica o
estructurada en que las instrucciones hacen referencia a los elementos del entorno. Esos
elementos representan "objetos"; y todos los datos y todas las acciones que se hagan con
ellos o sobre ellos, estn encapsuladas u ocultas en el objeto.
Objeto
Un objeto es una entidad provista de un conjunto de propiedades o atributos (datos),
de un comportamiento o funcionalidad (mtodos) y de sus posibles relaciones con otros
objetos.
El concepto de objeto tiene un concepto equivalente al objeto de nuestro mundo real.
En nuestro entorno siempre estamos en constante relacin con objetos: los creamos, los
usamos, los modificamos cambiando sus atributos, caractersticas o propiedades, los
relacionamos con otros objetos, etc.
Por ejemplo tomemos el objeto Automvil.
Un automvil es un objeto bastante pesado que tiene un conjunto de propiedades como
su identificacin (placa), color, marca, modelo, accesorios, etc. Tiene tambin un conjunto
de funciones como la de desplazarse, detenerse, ponerse en marcha. Podemos cambiarle
de color, aumentar o quitar sus accesorios; es decir, podemos modificar sus propiedades.
Tienen de la capacidad de ser activados para poner en accin sus funcionalidades; es
decir, disponemos de un procedimiento para ponerlo en marcha, avanzar en retroceso,
detenerlo, voltear a la izquierda o derecha; es decir, mediante un conjunto de mtodos
podemos darle uso al objeto automvil.
En la POO el objeto es el automvil; las propiedades de este objeto son sus
caractersticas y los mtodos lo constituyen las funcionalidades o procedimientos con los
cuales hacemos uso del objeto y modificamos su estado o contenido.
En el Excel podemos hablar del objeto Celda. Este objeto tiene dimensiones, color de
fondo, tipo de borde, tiene un contenido o valor. Posee algunas funcionalidades que nos
permiten cambiarlo de tamao, de color de fondo, de contenido. El objeto celda pertenece
al objeto Rango y est relacionada con l y tiene otras relaciones con otros objetos como
el objeto Hoja, el objeto Grfico, Libro, etc.
Propiedades
Son variables que describen algunos aspectos o caractersticas del objeto en el que
estn incluidas.
Las propiedades de un objeto toman un valor que puede ser permanente o puede
cambiar. Por ejemplo la propiedad color del objeto coche tomar un valor en concreto:
verde, rojo, etc. El valor concreto de una propiedad de un objeto se llama estado del
objeto. Podemos modificar la propiedad de un objeto accediendo a su estado.
Las propiedades de un objeto pueden tomar uno o varios valores. Estos valores pueden
ser de cualquier tipo de dato (String o cadena de caracteres; entero, etc. ).
Para acceder al estado de un objeto en POO se usa la siguiente sintaxis:
MiAuto.Color = Verde
donde el punto recibe el nombre de operador.
Aqu, MiAuto es una instancia del objeto Automvil; vale decir, es una copia.
Una propiedad de muchos objetos en Excel es Nombre. El objeto celda, rango u hoja
tiene un nombre cuyo valor es asignado por omisin por el Excel o es asignado por el
usuario. Una forma de acceder a la propiedad Nombre del objeto rango ser:
ActiveSheet.Name = "Ingresos"
En este caso el objeto Hoja activa est cambiando de nombre por Ingresos.
Mtodo
Un mtodo es una accin que el objeto "reconoce" y "sabe" cmo ejecutarlo. Es una
accin u operacin que realiza acceso a los datos. Se puede definir como un programa o
procedimiento escrito en algn lenguaje que est asociado a un objeto determinado y
cuya ejecucin slo puede desencadenarse a travs de un mensaje recibido por el objeto
o por sus descendientes.
El objeto automvil reconoce al procedimiento "Frenar" y sabe cmo debe realizar la
accin de frenado.
Del mismo modo, en Excel, el objeto Hoja puede ser declarada como activa. El mtodo
que permite activar la hoja "Ingresos" es
Sheets("Ingresos").Select
La hoja reconoce este mtodo y dicha hoja pasa a ser activa ubicndose en primer
plano y con mayores prioridades que las otras hojas.
Ejemplo de Objeto:
Objeto: Alumno
El objeto alumno tiene un conjunto de atributos o propiedades como: Edad, sexo,
peso, altura, nombre, raza, color de cabello, etc.
Existen un conjunto de acciones o mtodos, que se realizan sobre l: hablar, comer,
dormir, caminar, vestirse, correr, detenerse, etc.
Algunas de estas propiedades son heredadas de sus padres, otros objetos
de jerarqua superior.
El objeto alumno est relacionado con otros objetos como hermano, amigo, vecino.
Varios de estos objetos forman una clase: la clase Persona
Antes de empezar el estudio de las instrucciones del Visual Basic para Aplicaciones,
daremos una breve explicacin del Editor de Visual Basic y los elementos dentro de su
entorno.
Para hacer referencia a las propiedades mediante los programas en VBA, se usa la
sintaxis:
NombreDelObjeto.Propiedad
Ejemplo:
Range("A5").Name
A5.
Mtodos
Un mtodo es una accin, un procedimiento (un hilo), que tiene efectos sobre un objeto.
Ejemplo:
Range("A5").Select Aqu se ejecuta el mtodo Select, que permite activar la celda A5
y ponerla en disponible para cualquier otra operacin.
Range("B2:G4").Formato
En este caso, se ejecuta el mtodo Formato sobre el
rango B2:G4. Se supone que el mtodo Formato ya est definido previamente.
Eventos
Un evento es el resultado de una accin, es la forma cmo queda el objeto despus de
alguna accin sobre l. Por lo general estas acciones son producidas por los mtodos que
actan sobre el objeto.
Se ha seguido un hipervnculo.
For i = 1 to 3
Worksheets(i).PageSetup.RightFooter = Path
Next i
En el siguiente ejemplo se realiza sobre la coleccin de hojas del libro.
Variables
Puesto que todo lo que se realiza en el computador, debe ser guardado en la memoria,
cada uno de los datos deben tener un lugar en ella a donde guardarlos. Para ello es
necesario el uso de las variables. Mediante el uso de las variables y tambin constantes,
podemos almacenar cada uno de los datos o constantes en una localidad de la memoria.
Esto implica que, para acceder a dichas localidades, es necesario el uso de las
variables. Estas tienen un nombre. El nombre puede estar formado por una letra, seguido
de uno o ms caracteres literales o numricos. Estos nombres son nicos; es decir,
ninguna otra variable puede tener el mismo nombre. Naturalmente, la variable se puede
usar en diferentes mbitos o secciones; en cada una de ellas, el mismo nombre de
variable puede ser usado para propsitos distintos; sin embargo, el nombre de una
variable tambin puede ser definido para ser vlido en todos los mbitos.
Nota:
El nombre de una variable puede estar escrito en minsculas, maysculas o
combinarlas a fin de darle cierto sentido respecto a su contenido.
Sentencia DIM
Para declarar una variable se usa la sentencia DIM. Esta declaracin se coloca al
principio de las secciones o mdulos.
Sintaxis:
DIM NombreDeVariable As TipoDeDatos
DIM NombreVar1, NombreVar2, As TipoDeDatos
Tipos de variable
Tamao
deIntervalo
almacenamiento
Entero de un byte 0 a 255
Lgico de dosTrue o False
bytes
Entero de dos-32,768 a 32,767
bytes
Entero largo de 4-2,147,483,648 a 2,147,483,647
(entero largo)
bytes
Single
Decimal
(coma flotante/bytes
precisin simple)
Double
Decimal
(coma flotante/bytes
precisin doble)
de
DIM A, B As Integer
DIM Xtot, Zdat As Double
Variables Locales
Sub procedimiento()
Dim nDat
As Integer
Dim Cadena
As String
Sentencias ....
End Sub
Variables Pblicas
Si se quiere que una variable est disponible para todos los procedimiento s de todos
Variables Estticas
Option Explicit
La sentencia Option Explicit permite que el programa se detenga cada vez que VBA
encuentre una variable que no ha sido definida. Esto es de gran utilidad cuando se usan
muchas variables ya que nos permite identificar rpidamente errores o uso no deseado en
el nombre de la variable. Esta sentencia se debe escribir al comienzo del mdulo.
Constantes
A diferencia de la variables, cuyo valor cambia al ejecutarse un procedimiento, hay
valores que no cambian durante la ejecucin de un procedimiento, stos valores se
denominan Constantes. Las constantes se definen a travs de la sentencia Const. Por
ejemplo;
Const Nivel As Integer
Las constantes tambin pueden declararse como Pblicas para que estn disponibles
en todos los procedimientos de todos los mdulos, esto se hace a travs de la sentencia
PUBLIC
Public Const TasaActiva As Integer
Esta sentencia debe incluirse en un mdulo antes del primer procedimiento.
Para definir constantes Locales, basta definirlas a travs de la sentencia Const dentro
de un procedimiento o funcin.
Mdulos
Un mdulo es un ambiente, es un entorno de trabajo compuesto por sentencias de
declaracin de variables y por uno o ms procedimientos.
Estando en el Editor del Visual Basic, para disponer de un Mdulo, se debe usar la
siguiente secuencia de comandos: <Insertar> - <Mdulos>, como se indica en la siguiente
imagen.
Luego de esta accin, se podr observar, en la ventana de proyectos y dentro del libro
en uso, una carpeta con el nombre Mdulo. Dentro de ella se insertarn todos los
procedimientos que conforman dicho mdulo.
Procedimientos
Un procedimiento est formado por un conjunto de sentencias que permite resolver un
problema. Un mdulo est formado por uno o ms procedimientos. Un procedimiento se
declara a travs de la sentencia Sub y puede ser Privado, Pblico o Esttico.
Procedimiento Privado
Un procedimiento privado slo es accesible por otros procedimientos dentro del mismo
mdulo. Su sintaxis es:
Private Sub Procedimiento (Argumento1,Argumento2,.....)
[sentencias]
End Sub
Procedimiento Pblico
Un procedimiento pblico es accesible por todos los procedimientos de todos los
mdulos VBA de un proyecto, su sintaxis es:
Procedimiento Esttico
Para que las variables de un procedimiento se conserven una vez terminada su
ejecucin, ste debe definirse como Esttico:
Exit Sub
[Sentencias]
End Sub
Llamar a un procedimiento desde otro
Para llamar a un procedimiento desde otro procedimiento, se puede utilizar la
sentencia Call o simplemente el nombre del procedimiento. Por ejemplo:
Sub Proced1 (Argumento1,Argumento2,.....)
[Sentencias]
Proced2
[Sentencias]
End Sub
En este caso, el procedimiento Proced1 llama al procedimiento Proced2.
La sentencia Call se utiliza cuando se requiere llamar a un procedimiento al cual hay
que pasarle un argumento, por ejemplo:
Sub Procedimiento1(argumento1,argumento2,.....)
[Sentencias]
indice= ........
Call Proced2(indice)
[Sentencias]
End Sub
En
este
caso,
el
procedimiento Procedimiento1 llama
al
procedimiento Procedimiento2 al cual se le debe pasar el argumento indice. Es
recomendable utilizar siempre la sentencia Call para llamar a otro procedimiento, aunque
a ste no se le tengan que pasar argumentos, esto permite identificar ms fcilmente las
llamadas a otros procedimientos.
Argumentos
Los argumentos pueden ser pasados a un procedimiento por referencia (por defecto los
argumentos se pasan de esta forma) o por valor. Cuando un argumento es pasado por
referencia, se pasa la variable misma al procedimiento llamado, por lo que los cambios
que se producen en la variable son devueltos al procedimiento principal (al que llam al
otro). En cambio cuando un argumento es pasado por valor, se pasa una copia de la
variable al procedimiento llamado por lo que los cambios que se producen en la variable
no son devueltos al procedimiento principal. Para pasar un argumento por valor, se utiliza
la sentencia ByVal, por ejemplo :
Sub Proced2( ByVal indice)
[Sentencias]
End Sub
Pasar argumentos por valor es til cuando se requiere conservar el valor original de una
variable despus de llamar a otro procedimiento.
Al especificar los argumentos de un procedimiento tambin es posible definir el tipo de
dato, por ejemplo se puede definir un procedimiento de la siguiente forma :