You are on page 1of 66

PROGRAMACION ORIENTADA A OBJETOS

TRABAJO COLABORATIVO No. 2


Presentado por:
LUIS JAIME BENAVIDES
COD. !."#$.#2%
NADIA GABRIELA DUARTE MURCIA
COD. $.&&.%!.2'#
(ERN)N DAR*O GARC*A
COD. $&.&$+.#&#
MONICA LO,ANO RUI,
COD. %2.!.2++
T-tor:
CESAR JIMENE,
UNIVERSIDAD NACIONAL ABIERTA . A DISTANCIA / UNAD /
ESCUELA DE CIENCIAS BASICAS0 TECNOLOGIA E INGENIERIA
ABRIL 2&$&
INTRODUCCION
Cuando una persona desarrolla una aplicacin en un lenguaje como C o C++, el archivo
binario que genera el compilador y que contiene el cdigo que implementa dicha
aplicacin, se puede ejecutar nicamente sobre la plataforma sobre la cual fue desarrollada,
debido a que dicho cdigo es especifico a esa plataforma.
La plataforma Java se encuentra por encima de otras plataformas. l cdigo que generan
sus compiladores no es espec!fico de una maquina f!sica en particular, sino de una m"quina
virtual. #n cuando e$isten mltiples implantaciones de la %"quina &irtual Java, cada una
espec!fica de la plataforma sobre la cual subyace, e$iste una nica especificacin de la
m"quina virtual, que proporciona una vista independiente del hard'are y del sistema
operativo sobre el que se est( trabajando. )e esta manera un programador en Java *escribe
su programa una ve+, y lo ejecuta donde sea.
s precisamente la m"quina virtual Java la clave de la independencia de los programas
Java, sobre el sistema operativo y el hard'are en que se ejecutan, ya que es la encargada de
proporcionar la vista de un nivel de abstraccin superior, donde adem"s de la
independencia de la plataforma antes mencionada, presenta un lenguaje de programacin
simple, orientado a objetos, con verificacin estricta de tipos de datos, mltiples hilos, con
ligado din"mico y con recoleccin autom"tica de basura.
n efecto, Java es un lenguaje de programacin de ,un %icrosystems originalmente
llamado *-a.*, que fue concebido bajo la direccin de James /osling y 0ill Joy, quienes
pertenec!an a una subsidiaria de ,un, conocida como *1irst2erson 3nc*.
-a. naci para programar peque4os dispositivos electrodom(sticos, como los asistentes
personales digitales 2#)s 52ersonal )igital #ssistants6 y un poco m"s adelante se utili+
para ejecutar aplicaciones para televisores. 7inguno de estos productos tuvo ($ito
comercial. /osling y Joy se quedaron con una tecnolog!a robusta, eficiente, orientada a
objetos, independiente de la arquitectura, pero hasta ese momento, sin ninguna utilidad
pr"ctica. 7o pas mucho tiempo, cuando en ,un se dieron cuenta de que todas estas
caracter!sticas cubr!an a la perfeccin las necesidades de las aplicaciones de 3nternet. )e
esta manera, con unos cuantos retoques, -a. se convirti en Java.
# partir de esa estrategia, continuamos con uno de los cursos de mas relevancia no solo
para la 3ngenier!a de ,istemas, sino adem"s para carreras profesionales tales como la
lectrnica entre otras, que en sus planes de estudio e$ige para el perfil de sus estudiantes y
futuros profesionales, un enriquecido conocimiento lgico y anal!tico en cuanto al curso
que le abrir" a los egresados muchas oportunidades laborales que les permitir"n una mejor
calidad de vida no solo para ellos, sino tambi(n para sus familias.
)entro de ese marco mencionado, en la actividad que a continuacin ser" mostrada,
reali+amos una minuciosa y e$haustiva investigacin y algunos ejercicios que nos
requerir"n la pr"ctica de conocimientos previamente adquiridos posteriores a la lectura y
compresin del %aterial )id"ctico estipulado para el mismo.
OBJETIVOS
GENERAL
8econocer la importancia que tiene J#&# como plataforma virtual de soft'are.
ESPECI1ICOS
8econocer las ventajas y desventajas que tienen la tecnolog!a orientada a objetos.
)iferenciar los conceptos de objeto y clase.
)iferenciar la estructura de un programa reali+ado en C++ y Java.
#plicar los conceptos adquiridos en situaciones que sean propuestas ya sea en la
actividad a desarrollar o en cualquier otro momento.
8econocer las caracter!sticas de la estructura de un objeto en java.
3dentificar los tipos de datos usados en el lenguaje de programacin Java.
)eterminar la importancia y ventajas que traen el uso de los ciclos repetitivos en la
programacin orientada a objetos.
8esolver ejercicios de una situacin determinada que involucren los conceptos
adquiridos en el estudio de la presente unidad.
TRABAJO COLABORATIVO No. 2
GU*A DE ACTIVIDADES
Te23t45as 6-e se re74sar3n:
n este trabajo se revisar"n las siguientes tem"ticas9
Pr42er Paso:
Desarro88o de 8as A5t474dades:
UNIDAD 2. ESTRUCTURA DE UN OBJETO 9 INTRODUCCION A JAVA
CAPITULO ". ANALISIS DE LA ESTRUCTURA . COMPORTAMIENTO DE UN
OBJETO
CAPITULO #. 1UNDAMENTOS DE JAVA
Se:-ndo Paso:
La;orator4os en JAVA <JCREATORV" LE=
Corresponde al desarrollo de : Laboratorios programas en lenguaje de programacin java
5JC8#;-8&: L6
$. ;rabajar un programa en JAVA <JCREATORV" LE= con <na base de )atos teniendo
en cuenta que tenga entidad relacin.
2. ;rabajar un programa en JAVA <JCREATORV" LE= que genere un Chat entre Cliente
,ervidor.
". ;rabajar un programa en JAVA <JCREATORV" LE= que encripte y desencripte un te$to
num(rico o alfab(tico.
Aspe5tos :enera8es de8 tra;a>o: Cada grupo de trabajo, organi+ado desde un comien+o,
trabajar" en el desarrollo de las dos situaciones propuestas y orientar" sus actividades en
funcin de presentar el informe final.
l trabajo debe reali+arse en conjunto por todos los integrantes del grupo, consolidando los
aportes de cada integrante en el foro.
l documento final del foro deber ser * subido* a la plataforma en el lin.
*A5t. ': Tra;a>o Co8a;orat47o No. 2 9 Tarea?
Estrate:4a de aprend4@a>e prop-esta: Aprend4@a>e 5o8a;orat47o
Peso E7a8-at47o:
)ie+ por ciento 5$&A6 del total curso = %& p-ntos B %&& tota8es
Crono:ra2a de a5t474dades de8 1oro:
In454o: >?@-ct@?AAB AA9AA a.m. C4erre: :>@-ct@?AAB ?:9CC p.m.
Prod-5to esperado: )ocumento escrito reali+ado en Dord 5e$tensin .doc6, letra #rial >?,
interlineado >.C l!neas. l documento debe incluir9 2ortada, 3ntroduccin, )esarrollo de la
actividad y Conclusiones.
Los programas reali+ados en java tienen que ser jecutables o sea con e$tensin .java
PARTE No. $
UNIDAD No. 2 CAPITULO No. "
ACTIVIDADES COMPLEMENTARIAS
$. Crear e8 s4:-4ente o;>eto de 8a C4:-ra:
;eniendo en cuenta que9
<n objeto es una entidad que est" provista de un conjunto de propiedades o atributos 5es
decir, los datos6 y de comportamiento o funcionalidad 5llamados m(todos6 los mismos que
consecuentemente reaccionan a eventos. ,e corresponde con los objetos reales del mundo
que nos rodea, o a objetos internos del sistema 5del programa6. s una instancia a una clase.
,e puede inferir entonces que el objeto anterior se le puede denominar como calculadora,
pues es un dispositivo que se utili+a para reali+ar c"lculos aritm(ticos. #unque las
calculadoras modernas incorporan a menudo un ordenador de propsito general, se dise4an
para reali+ar ciertas operaciones m"s que para ser fle$ibles.
2. DC-38 es 8a d4Ceren54a de 8a pro:ra2a54En or4entada o;>etos 5on otros 8en:-a>esF
Pro:ra2a54En
Or4entada a
O;>etos
Pro:ra2a54En
or4entada a
5o2ponentes
Pro:ra2a54En
estr-5t-rada
Pro:ra2a54En
2od-8ar
La programacin
orientada a objetos,
intenta simular el mundo
real a trav(s del
significado de objetos
que contiene
caracter!sticas y
funciones. Los lenguajes
orientados a objetos se
clasifican como
lenguajes de quinta
generacin.
Como su mismo nombre
indica, la programacin
orientada a objetos se
basa en la idea de un
objeto, que es una
combinacin de
variables locales y
procedimientos llamados
m(todos que juntos
conforman una entidad
de programacin.
l termino
ncapsulacin se usa
para describir la
combinacin de
estructuras de datos y de
m(todos que son
manipulados por el
objeto. La llamada a un
objeto es lo que se
La programacin
orientada a componentes
5que tambi(n es llamada
basada en componentes6
es una rama de la
ingenier!a del soft'are,
con (nfasis en la
descomposicin de
sistemas ya conformados
en componentes
funcionales o lgicos
con interfaces bien
definidas usadas para la
comunicacin entre
componentes.
,e considera que el nivel
de abstraccin de los
componentes es mas alto
que el de los objetos y
por lo tanto no
comparten un estado y se
comunican
intercambiando mensajes
que contienen datos.
Componente de soft'are
<n componente de
soft'are es un elemento
de un sistema que ofrece
un servicio predefinido,
y es capa+ de
comunicarse con otros
La programacin
estructurada es una
forma de escribir
programas de ordenador
5programacin de
computadora6 de forma
clara. 2ara ello utili+a
nicamente tres
estructuras9 secuencia,
seleccin e iteracinE
siendo innecesario el uso
de la instruccin o
instrucciones de
transferencia
incondicional 5/-;-,
F3; 1<7C;3-7,
F3; ,<0 o mltiples
8;<876.
Goy en d!a las
aplicaciones
inform"ticas son mucho
m"s ambiciosas que las
necesidades de
programacin e$istentes
en los a4os >HIA,
principalmente debido a
las aplicaciones gr"ficas,
por lo que las t(cnicas de
programacin
estructurada no son
suficientes. llo ha
llevado al desarrollo de
nuevas t(cnicas, tales
La programacin
modular es un paradigma
de programacin que
consiste en dividir un
programa en mdulos
subprogramas con el fin
de hacerlo m"s legible y
manejable.
,e presenta
histricamente como una
evolucin de la
programacin
estructurada para
solucionar problemas de
programacin m"s
grandes y complejos de
lo que (sta puede
resolver.
#l aplicar la
programacin modular,
un problema complejo
debe ser dividido en
varios subproblemas m"s
simples, y estos a su ve+
en otros subproblemas
m"s simples. sto debe
hacerse hasta obtener
subproblemas lo
suficientemente simples
como para poder ser
resueltos f"cilmente con
algn lenguaje de
denomina pasar un
*aviso* a un objeto.
n la programacin
orientada a objetos,
encapsular significa,
reunir y controlar el
grupo resultante como
un todo y no
individualmente.
n la programacin
orientada a objetos la
abstraccin es un
t(rmino e$terno al
objeto, que controla la
forma en que es visto por
los dem"s.
n la programacin
orientada a objetos la
modularidad se
considera de la siguiente
manera9 <n programa
grande siempre ser" m"s
complicado que la suma
de varios programas
peque4os, con lo que se
considera ventajoso
dividir un gran sistema
en diversos mdulos.
n la programacin
orientada a objetos
tenemos la jerarqu!a, la
cual consiste en la
clasificacin y
organi+acin de las
abstracciones segn su
naturale+a. l m"s claro
ejemplo de jerarqu!a es
la herencia.
n la programacin
componentes.
<na definicin m"s
simple puede ser9 <n
componente es un objeto
escrito de acuerdo a unas
especificaciones. 7o
importa que
especificacin sea esta,
siempre y cuando el
objeto se adhiera a la
especificacin. ,olo
cumpliendo
correctamente con esa
especificacin es que el
objeto se convierte en
componente y adquiere
caracter!sticas como
reusabilidad.
Cuando se necesita el
acceso a un componente
o cuando este debe ser
compartido entre
distintas redes, se recurre
a procesos como la
seriali+acin para
entregar el componente a
su destino.
La reusabilidad es una
caracter!stica importante
de los componentes de
soft'are de alta calidad.
<n componente debe ser
dise4ado e
implementado de tal
forma que pueda ser
reutili+ado en muchos
programas diferentes.
8equiere gran esfuer+o y
atencin escribir un
como la programacin
orientada a objetos y el
desarrollo de entornos de
programacin que
facilitan la programacin
de grandes aplicaciones.
-r!genes de la
programacin
estructurada
# finales de los a4os
>HIA surgi una nueva
forma de programar que
no solamente daba lugar
a programas fiables y
eficientes, sino que
adem"s estaban escritos
de manera que facilitaba
su comprensin
posterior.
l teorema del programa
estructurado, demostrado
por 0Jhm@Jacopini,
demuestra que todo
programa puede
escribirse utili+ando
nicamente las tres
instrucciones de control
siguientes9
,ecuencia
3nstruccin condicional.
3teracin 5bucle de
instrucciones6 con
condicin al principio.
,olamente con estas tres
estructuras se pueden
escribir todos los
programacin. Ksta
t(cnica se llama
refinamiento sucesivo,
divide y vencer"s
an"lisis descendente
5;op@)o'n6.
<n mdulo es cada una
de las partes de un
programa que resuelve
uno de los subproblemas
en que se divide el
problema complejo
original. Cada uno de
estos mdulos tiene una
tarea bien definida y
algunos necesitan de
otros para poder operar.
n caso de que un
mdulo necesite de otro,
puede comunicarse con
(ste mediante una
interfa+ de comunicacin
que tambi(n debe estar
bien definida.
,i bien un modulo puede
entenderse como una
parte de un programa en
cualquiera de sus formas
y variados conte$tos, en
la pr"ctica es comn
representarlos con
procedimientos y
funciones.
#dicionalmente, tambi(n
pueden considerarse
mdulos las librer!as que
pueden incluirse en un
programa o, en
programacin orientada
a objetos, la
implementacin de un
orientada a objetos se
define la herencia como
una jerarqu!a de
e$tracciones, y la
relacin entre clases,
donde se comparte la
estructura y el
comportamiento de una
o m"s clase considerada
como clases superiores o
una superclase, con lo
cual se resume que la
herencia es una unidad
independiente por si
misma heredada de una
abstraccin o superclase.
<n ejemplo cotidiano lo
encontramos en las
aplicaciones que e$isten
actualmente en el
mercado, donde un
formulario cualquiera
hereda las caracter!sticas
de una ventana del
sistema operativo
Dindo's 5%a$imi+ar,
%inimi+ar, Cerrar6
componente que es
realmente reutili+able.
2ara esto, el componente
debe estar9
Completamente
documentado.
2robado intensivamente9
)ebe ser robusto,
comprobando la valide+
de las entradas.
)ebe ser capa+ de pasar
mensajes de error
apropiados.
)ise4ado pensando en
que ser" usado de
maneras imprevistas.
programas y
aplicaciones posibles. ,i
bien los lenguajes de
programacin tienen un
mayor repertorio de
estructuras de control,
(stas pueden ser
construidas mediante las
tres b"sicas.
&entajas de la
programacin
estructurada.
Con la programacin
estructurada, elaborar
programas de
computador sigue siendo
una labor que e$ige
esfuer+o, creatividad,
habilidad y cuidado. ,in
embargo, con este estilo
podemos obtener las
siguientes ventajas9
>. Los programas son
m"s f"ciles de entender,
ya que pueden ser le!dos
de forma secuencial, sin
necesidad de hacer
seguimiento a saltos de
l!nea 5/-;-6 dentro de
los bloques de cdigo
para entender la lgica.
?. La estructura del
programa es clara,
puesto que las
instrucciones est"n m"s
ligadas o relacionadas
entre s!.
:. 8educcin del
tipo de dato abstracto.
esfuer+o en las pruebas.
l seguimiento de los
fallos o errores del
programa 5*debugging*6
se facilita debido a la
estructura m"s visible,
por lo que los errores se
pueden detectar y
corregir m"s f"cilmente.
L. 8educcin de los
costos de mantenimiento
de los programas.
C. 2rogramas m"s
sencillos y m"s r"pidos
5ya que es m"s f"cil su
optimi+acin6.
I. Los bloques de cdigo
son auto e$plicativos, lo
que facilita la
documentacin.
M. Los /-;- se
reservan para construir
las instrucciones b"sicas.
#unque no se usan de
forma directa, por estar
prohibida su utili+acin,
est"n incluidas
impl!citamente en las
instrucciones de
seleccin e iteracin.
B. <n programa escrito
de acuerdo a estos
principios no solamente
tendr" una mejor
estructura sino tambi(n
una e$celente
presentacin.
H. La programacin
estructurada ofrece estos
beneficios, pero no se la
debe considerar como
una panacea ya que el
desarrollo de programas
es, principalmente, una
tarea de dedicacin,
esfuer+o y creatividad.
3nconvenientes de la
programacin
estructurada
l principal
inconveniente de este
m(todo de programacin
es que se obtiene un
nico bloque de
programa, que cuando se
hace demasiado grande
puede resultar
problem"tico su manejoE
esto se resuelve
empleando la
programacin modular,
definiendo mdulos
interdependientes
programados y
compilados por separado
5en realidad esto no es
necesario, pero es
recomendable para su
mantenimiento y
funcionalidad6.
n realidad, cuando se
programa hoy en d!a
5inicios del siglo FF36 se
suelen utili+ar, tanto las
t(cnicas de
programacin
estructurada como las de
programacin modular,
de forma conjunta y por
lo tanto es posible que
cuando uno haga
referencia a la
programacin
estructurada est(
considerando tambi(n
las t(cnicas de
modulari+acin.
<n m(todo un poco m"s
sofisticado es la
programacin por capas,
en la que los mdulos
tienen una estructura
jer"rquica en la que se
pueden definir funciones
dentro de funciones o de
procedimientos.
Len:-a>es de pro:ra2a54En:
Or4entado a O;>etos:
Ada: s un lenguaje de programacin orientado a objetos y fuertemente tipado de forma
est"tica que fue dise4ado por Jean 3chbiah de C33 Goney'ell 0ull por encargo del
)epartamento de )efensa de los stados <nidos. s un lenguaje multipropsito, orientado
a objetos y concurrente, pudiendo llegar desde la facilidad de 2ascal hasta la fle$ibilidad de
C++.
1ue dise4ado con la seguridad en mente y con una filosof!a orientada a la reduccin de
errores comunes y dif!ciles de descubrir. 2ara ello se basa en un tipado muy fuerte y en
chequeos en tiempo de ejecucin 5desactivables en beneficio del rendimiento6. La
sincroni+acin de tareas se reali+a mediante la primitiva rende+vous.
#da se usa principalmente en entornos en los que se necesita una gran seguridad y
fiabilidad como la defensa, la aeron"utica 50oeing o #irbus6, la gestin del tr"fico a(reo
5como 3ndra en spa4a6 y la industria aeroespacial entre otros.
Cara5terGst45as
La sinta$is, inspirada en 2ascal, es bastante legible incluso para personas que no cono+can
el lenguaje. s un lenguaje que no escatima en la longitud de las palabras clave, en la
filosof!a de que un programa se escribe una ve+, se modifica decenas de veces y se lee
miles de veces 5legibilidad es m"s importante que rapide+ de escritura6.
s indiferente el uso de maysculas y minsculas en los identificadores y palabras claves,
es decir es un lenguaje case@insensitive.
n #da, todo el programa es un nico procedimiento, que puede contener subprogramas
5procedimientos o funciones6.
Cada sentencia se cierra con end qu(Ncerramos. s un modo de evitar errores y facilitar la
lectura. 7o es necesario hacerlo en el caso de subprogramas, aunque todos los manuales lo
aconsejan y casi todos los programadores de #da lo hacen.
l operador de asignacin es9=, el de igualdad =. # los programadores de C y similares les
puede confundir este rasgo inspirado en 2ascal.
La sinta$is de atributos predefinidos es -bjetoO atributo 5o ;ipoO atributo6 5nota9 esto slo
aplica a atributos predefinidos por el lenguaje, ya que no es el concepto de atributo t!pico
de --26.
,e distingue entre *procedimientos* 5subrutinas que no devuelven ningn valor pero
pueden modificar sus par"metros6 y *funciones* 5subrutinas que devuelven un valor y no
modifican los par"metros6. %uchos lenguajes de programacin no hacen esta distincin.
Las funciones de #da favorecen la seguridad al reducir los posibles efectos colaterales,
pues no pueden tener par"metros in out.
A5t4onS5r4pt: s un lenguaje de programacin orientado a objetos 5--26, utili+ado en
especial en aplicaciones Deb animadas reali+adas en el entorno #dobe 1lash, la tecnolog!a
de #dobe para a4adir dinamismo al panorama Deb. 1ue lan+ado con la versin L de 1lash,
y desde entonces hasta ahora, ha ido ampli"ndose poco a poco, hasta llegar a niveles de
dinamismo y versatilidad muy altos en la versin >A 5#dobe 1lash C,L6 de 1lash.
#ction,cript es un lenguaje de script, esto es, no requiere la creacin de un programa
completo para que la aplicacin alcance los objetivos. l lenguaje est" basado en
especificaciones de est"ndar de industria C%#@?I?, un est"ndar para Javascript, de ah!
que #ction,cript se pare+ca tanto a Javascript.
La versin m"s e$tendida actualmente es #ction,cript :.A, que significo una mejora en el
manejo de programacin orientada a objetos al ajustarse mejor al est"ndar C%#@?I? y es
utili+ada en la ltima versin de #dobe 1lash y 1le$ 5recientemente comprada a
%acromedia6 y en anteriores versiones de 1le$. )esde la versin ? de 1le$ viene incluido
#ction,cript :, el cual mejora su rendimiento en comparacin de sus antecesores, adem"s
de incluir nuevas caracter!sticas como el uso de e$presiones regulares y nuevas formas de
empaquetar las clases.
Ja7a: s un lenguaje de programacin orientado a objetos desarrollado por ,un
%icrosystems a principios de los a4os HA. l lenguaje en s! mismo toma mucha de su
sinta$is de C y C++, pero tiene un modelo de objetos m"s simple y elimina herramientas de
bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros
o memoria.
Las aplicaciones Java est"n t!picamente compiladas en un bytecode, aunque la compilacin
en cdigo m"quina nativo tambi(n es posible. n el tiempo de ejecucin, el bytecode es
normalmente interpretado o compilado a cdigo nativo para la ejecucin, aunque la
ejecucin directa por hard'are del bytecode por un procesador Java tambi(n es posible.
La implementacin original y de referencia del compilador, la m"quina virtual y las
bibliotecas de clases de Java fueron desarrolladas por ,un %icrosystems en >HHC. )esde
entonces, ,un ha controlado las especificaciones, el desarrollo y evolucin del lenguaje a
trav(s del Java Community 2rocess, si bien otros han desarrollado tambi(n
implementaciones alternativas de estas tecnolog!as de ,un, algunas incluso bajo licencias
de soft'are libre.
ntre noviembre de ?AAI y mayo de ?AAM, ,un %icrosystems liber la mayor parte de sus
tecnolog!as Java bajo la licencia /7< /2L, de acuerdo con las especificaciones del Java
Community 2rocess, de tal forma que pr"cticamente todo el Java de ,un es ahora soft'are
libre 5aunque la biblioteca de clases de ,un que se requiere para ejecutar los programas
Java todav!a no es soft'are libre6.
Estr-5t-rada:
Pas5a8: s un lenguaje de programacin desarrollado por el profesor sui+o 7i.laus Dirth a
finales de los a4os IA. ,u objetivo era crear un lenguaje que facilitara el aprendi+aje de la
programacin a sus alumnos. ,in embargo con el tiempo su utili+acin e$cedi el "mbito
acad(mico para convertirse en una herramienta para la creacin de aplicaciones de todo
tipo.
2ascal se caracteri+a por ser un lenguaje de programacin estructurado fuertemente
tipificado. sto implica que9
l cdigo esta dividido en porciones f"cilmente legibles llamadas funciones o
procedimientos. )e esta forma 2ascal facilita la utili+acin de la programacin estructurada
en oposicin al antiguo estilo de programacin monol!tica.
l tipo de dato de todas las variables debe ser declarado previamente para que su uso quede
habilitado.
l nombre de 2ascal fue escogido en honor al matem"tico 0laise 2ascal.
Cara5terGst45as
# diferencia de lenguajes de programacin descendientes de C, 2ascal utili+a el s!mbolo9=
para la asignacin en ve+ de =. ,i bien el segundo es m"s conciso, la pr"ctica ha
demostrado que muchos usuarios utili+an el s!mbolo de igualdad para comparar valores en
lugar del comparador de C que es el s!mbolo ==. sta sinta$is conduce a muchos errores o
bugs dif!ciles de rastrear en cdigo C. )ado que 2ascal no permite asignaciones dentro de
e$presiones y utili+a sinta$is distinta para asignaciones y comparaciones, no sufre estos
errores.
#dem"s sus programas tienen definidas dos partes9 declarativa y ejecutiva. n la primera
debe aparecer todo lo que se usar" en la segunda, de lo contrario se detecta como
desconocido y evita ciertas incomprensiones como veremos m"s adelante. n la parte
declarativa se enuncian <nit e$istentes, procedimientos, funciones, variables, constantes y
nuevos tipos de datos estructurados.
-tra diferencia importante es que en 2ascal, el tipo de una variable se fija en su definicinE
la asignacin a variables de valores de tipo incompatible no est"n autori+adas 5n C, en
cambio, el compilador hace el mejor esfuer+o para dar una interpretacin a casi todo tipo de
asignaciones6. sto previene errores comunes donde variables son usadas incorrectamente
porque el tipo es desconocidoE y tambi(n evita la necesidad de notacin hngara, que
vienen a ser prefijos que se a4aden a los nombres de las variables y que indican su tipo.
Mod-8a9"
%odula@: es un lenguaje de programacin imperativo, estructurado y modular, concebido
como el sucesor de %odula@?.
Las principales caracter!sticas del lenguaje son su simplicidad y la seguridad, adem"s de
conservar la potencia de los lenguajes de programacin de sistemas.
Cara5terGst45as de8 8en:-a>e
l manejo de e$cepciones est" basado en un sistema de bloques ;8P...FC2; bastante
comn. <na caracter!stica que no se ha adoptado en otros lenguajes 5a e$cepcin de 2ython
y ,cala6 es la construccin del FC2; definido como un pseudo@C#,, en el que cada
posible e$cepcin es un caso en una cl"usula FC2;. %odula@: tambi(n incluye la
construccin L--2...F3;...7), en la que el bucle se repite hasta que se encuentra un
F3; 5esta estructura es equivalente a un bucle simple dentro de un ;8P...FC2;6
l empleo de objetos se mantiene intencionadamente en su vertiente m"s simple. <n tipo de
objeto 5clase6 se crea con la declaracin -0JC;. Ksta tiene b"sicamente la misma sinta$is
que una declaracin 8C-8), aunque un objeto as! declarado es un tipo de referencia
mientras que 8C-8) no lo es.
2or ejemplo9 # = -0JC; a9 37;/8E %;G-), p 569= #2E 7)E declara un nuevo
tipo de objeto *#*, que contiene un nico campo *a* y un m(todo *p*. l procedimiento
*#2* que implementa a *p* debe ser declarado en otro lugar9 28-C)<8 #2 5self9 #6 =
0/37... 7)E Las llamadas a los m(todos se reali+an con *o.p 56E*, donde *o* es una
variable de tipo *#*.
La construccin 8&#L de %odula@: proporciona un mecanismo conceptualmente
simple y muy potente para ocultar los detalles de implementacin a los clientes, con
distintos niveles de *amistad*.
n resumen, las caracter!sticas del lenguaje son9
%odularidad e interfaces
8esaltado e$pl!cito de cdigo inseguro
8ecogida autom"tica de basura
;ipo de dato fuerte, equivalencia estructural de tipos
-bjetos
$cepciones
;hreads
2lantillas
%odula@: es uno de los pocos lenguajes en los que la evolucin de sus caracter!sticas est"
documentada. n ,ystem 2rogramming 'ith %odula@:, se tratan cuatro puntos esenciales
del dise4o del lenguaje. stos temas son structural vs. quivalencia ,em"ntica, reglas
para los subtipos, mdulos gen(ricos y tipos de par"metros 5como 8#)-7LP6
". DC-38es son 8as des7enta>as de 8a pro:ra2a54En or4entada a o;>etosF
La programacin orientada a objetos es una evolucin de la programacin procedural
basada en funciones. La 2-- nos permite agrupar secciones de cdigo con funcionalidades
comunes.
<na de las principales desventajas de la programacin procedural basada en funciones es su
construccin, cuando una aplicacin bajo este tipo de programacin crece, la modificacin
del cdigo se hace muy trabajosa y dif!cil debido a que el cambio de una sola l!nea en una
funcin, puede acarrear la modificacin de muchas otras l!neas de cdigo pertenecientes a
otras funciones que est(n relacionadas.

Con la programacin orientada a objetos se pretende agrupar el cdigo encapsul"ndolo y
haci(ndolo independiente, de manera que una modificacin debida al crecimiento de la
aplicacin solo afecte a unas pocas l!neas.

La organi+acin de una aplicacin en 2-- se reali+a mediante estructuras de cdigo,
tambi(n llamados objetos. stos objetos contienen una serie de procedimientos e
informacin destinados a resolver un grupo de tareas con un denominador comn.
<n procedimiento que este situado en un objeto no podr" ser usado por otro procedimiento
perteneciente a otro objeto, si no es bajo una serie de reglas. Los datos que mantenga el
objeto, permanecer"n aislados del e$terior y slo se podr" acceder a ellos siguiendo ciertas
normas.
l objetivo de 2-- es catalogar y diferenciar el cdigo, en base a estructuras jer"rquicas
dependientes, al estilo de un "rbol genealgico.
Los objetos se crean a partir de una serie de especificaciones o normas que definen como
va a ser el objeto, esto es lo que en 2-- se conoce como una clase.

Las clases definen la estructura que van a tener los objetos que se creen a partir de ella,
indicando que propiedades y m(todos tendr"n los objetos.

Las propiedades definen los datos o informacin del objeto, permitiendo modificar o
consultar su estado, mientras que los m(todos son las rutinas que definen el
comportamiento del objeto.
s necesario tener muy clara cual es la diferencia entre un objeto y una clase, a este
respecto podemos decir que una clase constituye la representacin abstracta de algo
mientras que un objeto constituye la representacin concreta de lo que la clase define.
3maginemos los planos de una casa dise4ados por un arquitecto, en ellos encontramos el
esquema de la casa, las medidas, los materiales etc.
<na ve+ construida la casa podremos comprobar que cumple todo lo que los planos
determinaban, de esta manera podemos comparar los planos de la casa con las clases en
2--, y la casa en si con un objeto creado a partir de una clase. ,e debe destacar tambi(n
que con los mismos planos se pueden crear muchas casas iguales, lo mismo ocurre en 2--,
a partir de una clase se pueden crear muchos objetos iguales.
La creacin de un objeto a partir de una clase se conoce como instanciacin de un objeto.
CARACTERISTICAS
En5aps-8a54En: ,ignifica que en una clase se declaran los tipos de datos y el medio de
manipularlos 5sus m(todos6.
(eren54a: ,upone crear clases derivadas de otras e$istentes, que heredan sus tipos y
m(todos y pueden contener otros nuevos. ,i una nueva clase hereda propiedades de m"s de
una antecesora, se denomina herencia mltiple. ,in embargo, no todos los lenguajes
orientados a objetos lo permiten.
Po842orC4s2o: La programacin de funciones o procedimientos que ejecutar"n acciones
que depender"n de los objetos sobre los que se apliquen.
COMPONENTES
l cmputo es un sistema orientado a objetos que supone la manipulacin de objetos de
ciertas clases. <na clase es en realidad, un medio de empaquetar una implementacin de
tipo abstracto de datos 5;#)6 y esta clase controla el acceso a los elementos.
<na clase contiene toda la informacin necesaria para construir ejemplares individuales de
ella misma9 estos ejemplares se conoces como objetos. s importante comprender la
diferencia entre clase y un objetoE una clase es simplemente una especificacin para crear
objetos. )e este modo una nica clase permite crear mltiples objetos. Los objetos son
entidades reales que ser"n manipuladas en un programa inform"tico.
Cada objeto contiene su propio conjunto de datos, llamados variables miembros o
miembros de datos, que determinan el estado individual de ese objeto. #dem"s una clase
puede almacenar informacin que es compartida por todos los ejemplares de la clase en
variables de clase.
USOS DE LA POO
)!a a d!a los costos del Gard'are decrecen. #s! surgen nuevas "reas de aplicacin
cotidianamente9 procesamiento de im"genes y sonido, bases de datos multimediales,
automati+acin de oficinas, ambientes de ingenier!a de soft'are, etc. #n en las
aplicaciones tradicionales encontramos que definir interfases hombre@m"quina *a@la@
Dindo's* suele ser bastante conveniente.
Lamentablemente, los costos de produccin de soft'are siguen aumentandoE el
mantenimiento y la modificacin de sistemas complejos suele ser una tarea trabajosaE cada
aplicacin, 5aunque tenga aspectos similares a otra6 suele encararse como un proyecto
nuevo, etc.
Venta>as de 8a te5no8o:Ga or4entada a o;>etos.
18eH4;484dad. ,i partimos del hecho que mediante la definicin de clases establecemos
mdulos independientes, a partir de los cuales podemos definir nuevas clases, entonces
podemos pensar en estos mdulos como bloques con los cuales podemos construir
diferentes programas.
Re-sa;484dad. <na ve+ que hemos definido a la entidad persona para utili+arla en una
aplicacin de negocios, por mencionar un ejemplo, y deseamos construir a continuacin
una aplicacin, digamos de deportes, en donde requerimos definir a la misma entidad
persona, no es deseable volver a escribir la definicin para la entidad persona. 2or medio de
la reusabilidad podemos utili+ar una clase definida previamente en las aplicaciones que nos
sea conveniente. s claro que la fle$ibilidad con la que se defini la clase va a ser
fundamental para su reutili+acin.
Manten4;484dad. Las clases que conforman una aplicacin, vistas como mdulos
independientes entre s!, son f"ciles de mantener sin afectar a los dem"s componentes de la
aplicacin.
EHtens4;484dad. /racias a la modularidad y a la herencia una aplicacin dise4ada bajo el
paradigma de la orientacin a objetos puede ser f"cilmente e$tensible para cubrir
necesidades de crecimiento de la aplicacin.
Des7enta>as de 8a te5no8o:Ga or4entada a o;>etos.
# pesar de que las ventajas de la programacin orientada a objetos superan a las
limitaciones de la misma, podemos encontrar algunas caracter!sticas no deseables en (sta.
L424ta54ones para e8 pro:ra2ador. 7o obstante que la tecnolog!a orientada a objetos no
es nueva, un gran porcentaje de programadores no est"n familiari+ados con los conceptos
de dicha tecnolog!a. n otras palabras, la lgica de la programacin estructurada sigue
siendo predominante en la mayor!a de los desarrolladores de soft'are, despu(s de haber
revisado de forma breve los principios de la programacin orientada a objetos, nos es claro
que en (sta se requiere una lgica de pensamiento totalmente diferente a la lgica
comnmente utili+ada para la programacin estructurada.
Ta2aIo eH5es47o en 8as ap845a54ones res-8tantes. La gran mayor!a de los equipos de
cmputo cuentan con capacidades tanto de almacenamiento como de memoria lo
suficientemente buena como para ejecutar la mayor!a de las aplicaciones que puedan
desarrollarse con la tecnolog!a orientada a objetos, sin embargo e$isten casos en los que lo
anterior no se cumple. <na de las desventajas de la programacin orientada a objetos es que
cuando se heredan clases a partir de clases e$istentes se heredan de forma impl!cita todos
los miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones
muy grandes que no siempre encajan en los sistemas con los que se disponga.
Ve8o54dad de e>e5-54En. sto tiene que ver, en cierto modo, con el punto anterior, una
aplicacin innecesariamente pesada en muchas ocasiones es m"s lenta de ejecutar que una
aplicacin conformada nicamente por los mdulos necesarios.
#. Rea84@a -na estr-5t-ra por e>e2p8o de8 5o2p-tador de s- 5asa donde 4nd46-e 5-a8es
son 8os datos J 5-a8es son 8os 2Ktodos.
<na ve+ le!do el material de estudio que corresponde a est" unidad did"ctica, es importante
que se realicen actividades complementarias, con el fin de profundi+ar en los temas
anteriormente estudiados.
n efecto, dando paso a este punto de la actividad, se deben tener en cuanta los conceptos
de datos y m(todos respectivamente.
2ara poder entender mejor el punto, a continuacin de procede a definir conceptualmente lo
que abarcan dichos t(rminos en cuanto a lo que se est" estudiando.
2or lo tanto, se puede definir entonces que un objeto es una entidad que est" provista de un
conjunto de propiedades o atributos 5es decir, los datos6 y de comportamiento o
funcionalidad 5llamados m(todos6 los mismos que consecuentemente reaccionan a eventos.
,e corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del
sistema 5del programa6. s una instancia a una clase.
,i en este caso particular, aplicamos lo abordado a lo que est"n planteando en el punto, se
puede abarcar entonces que el objeto a tomar, denominado bajo el nombre de
QcomputadorR, ll"mese en que tengamos en nuestros hogares, lugares de trabajo,
universidad, o cualquier otro lugar donde podamos tener acceso, es posible afirmar que9
Los datos ySo atributos que posee el objeto computador pueden ser9 su tama4o, el color que
(ste posea, la casa fabricante o marca, el material del que est" elaborado, etc.
ntre los m(todos o funciones del objeto computador, pueden describirse9 reciben entradas
5son los datos que se capturan en un sistema de computacin para su procesamiento6
producen salidas 5la presentacin de los resultados del procesamiento6 almacenan
informacin, se pueden prender y apagar, tienen la habilidad de poder detectar un red 5sea
(sta guiada o no guiada6, procesar una determinada informacin requerida, hacer c"lculos
por muy complejos que sean, entre otras.
2ero si nos ponemos a observar de una manera an m"s detallada, se puede llegar a la
conclusin de que el objeto computador, est" a su ve+ compuesto por otros objetos, como lo
son el monitor, la C2< 5o <nidad Central de 2rocesamiento, por sus siglas en ingl(s6, el
teclado y el %ouse.
%. In7est4:a 5o2o es e8 5o2porta24ento de 8os o;>etos en -na 58ase.
<na clase plasma un conjunto de responsabilidades que define el comportamiento de los
objetos de la clase. Las acciones de las que la clase es responsable se llevan a cabo
mediante las operaciones definidas en la clase, de forma que todas las instancias de la clase
ser"n capaces de reali+ar las operaciones de dicha clase.
La estructura de un objeto se define a partir de los atributos de la clase a la que pertenece.
Los objetos de una clase asignar"n un valor a cada uno de los atributos de su clase.
/eneralmente los mensajes en los diagramas de interaccin se traducen a operaciones en
las clases que los reciben, sin embargo, hay casos especiales de mensajes que no llegan a
ser operaciones. 2or ejemplo, si la clase que recibe el mensaje es de tipo boundary
5estereotipo de una clase6 que contiene una clase de tipo /<3 5graphical user interface6, el
mensaje es una declaracin de los requisitos de la /<3.
,e encontrar"n otros ejemplos en los mensajes desde o hacia un actor que modela una
persona f!sica, estos mensajes deben incorporarse al manual de usuario ya que no tiene
sentido crear operaciones para personas.
3gualmente, si se trata de un mensaje desde o hacia un actor que representa otro sistema, se
debe crear una clase que contenga el protocolo que se va a utili+ar en la comunicacin con
el sistema e$terno, en este caso el mensaje se traduce a una de las operaciones de la clase
creada para el protocolo espec!fico.
Las operaciones tambi(n se pueden crear independientemente de los diagramas de
interaccin, ya que puede ser que no todos los escenarios est(n representados en estos
diagramas. #dem"s, pueden e$istir operaciones que se crean para ayudar a otra operacin.
#unque hemos definido el comportamiento y la estructura como caracter!sticas asociadas a
un objeto, tambi(n una relacin puede estar dotada de estructura y comportamiento. ,e trata
de relaciones cuya informacin tiene que ver con el enlace entre los objetos relacionados y
no con uno de los objetos en particular. La estructura y el comportamiento que definen una
relacin se representa mediante una clase de tipo association class.
#unque los casos de uso y escenarios proporcionan la forma de describir el
comportamiento del sistema, es decir, la interaccin entre los objetos del sistema, a veces es
necesario especificar el comportamiento interno de un objeto.
l comportamiento din"mico de un objeto se puede incluir en el dise no utili+ando un
diagrama de estados y transiciones 5state transition diagram6, dichos diagramas muestran
los estados del objeto, los eventos o mensajes que originan la transicin de un estado a otro,
y las acciones consecuencia del cambio de estado.
,e crear" un diagrama de este tipo para aquellas clases con un comportamiento din"mico
significativo. ste tipo de diagramas de comportamiento tambi(n se utili+an en la
especificacin del comportamiento de agregaciones y de clases control 5estereotipo control
de una clase6.
l comportamiento de los objetos de una clase se describe a trav(s de un conjunto de
m(todos.
<n m(todo simula una operacin 5o proceso6 que los objetos de la clase saben reali+ar. Los
m(todos permiten *administrar* el estado del objeto9 cambiar los valores de los atributos.
Los m(todos permiten consultar el estado de los objetos9 conocer los valores de los
atributos
UNIDAD No. 2 CAPITULO No. #
ACTIVIDADES COMPLEMENTARIAS
$. EHp846-e 5-a8 es 8a d4Ceren54a de 8a estr-5t-ra de -n pro:ra2a en C J Ja7a.
Java tiene dos tipos de clases internas, clases internas est"ticas y no est"ticas de clases
internas. C T tiene una funcin similar a la est"tica clases internas, pero no tiene ninguna
contrapartida para los no@est"tica clases internas. #dem"s, en Java puede declarar clases
internas annimas dentro de los m(todos, pero no puede hacer eso en C T.
Java permite ca!da en sus declaraciones a trav(s del interruptor y puede cambiar en enteros
y caracteres de C T, pero puede cambiar en las cuerdas y anhela y no permite una ca!da
profunda a menos que est( vac!a.

Java no permite punteros y la aritm(tica de punteros, pero C T permite un uso restringido
del puntero mediante el uso de la palabra clave no apto para ese bloque de cdigo que,
programador va a usar punteros.
Cuando se trata de tipos primitivos, C T tiene m"s tipos primitivos de Java, el apoyo enteros
sin signo y cadenas literales.
C T proporciona la capacidad de evitar el uso de secuencias de escape dentro de las
constantes de cadena y en lugar de declarar cadenas literalmente. #s!, las barras invertidas,
partituras, citas y saltos de l!nea puede ser parte de una cadena sin usar secuencias de
escape.
La nica advertencia es que las comillas dobles que aparecen en las cadenas literales deben
ser redobladas. Cadenas literales se especifican anteponiendo el s!mbolo U a las
declaraciones de cadena.
C T tiene cierto multidimensional, que no tiene java, pero ambos tienen las matrices de
matrices 5arrays irregulares6, tienen un rendimiento inferior en comparacin con el acceso
multidimensional 5rectangular6 de matrices.
La clase parcial es un concepto en C T que falta en Java, que permite una fuente de la clase
a ser dividido en varios ficheros fuente, sino que debe estar marcado parcial.
/enerics e$iste tanto en los lenguajes de programacin, pero en pr"ctica diferentes.
n Java slo el compilador sabe acerca de ellos y J&% no tienen que cambiar mucho para
apoyarla, pero el mecanismo est" integrado en la plataforma. 7;. Java no permite que los
tipos primitivos en los gen(ricos, pero C T.
%(todo de los punteros se incluyen en C T en la forma de los delegados utili+ados para las
devoluciones de llamada y manejo de eventos, que no e$iste en Java.
/estin de eventos se reali+a a trav(s del patrn -bserver en Java, pero se maneja a nivel
de lenguaje en C T mediante el uso de los delegados.
C T contiene la instruccin goto para saltar a ciertas etiquetas, que no e$iste en Java.
)e C T permite la sobrecarga de operadores sujetos a restricciones, pero Java no lo hace.
n los m(todos de la subclase de Java con el mismo nombre como su m(todo de padres de
la clase siempre anulan sus correspondientes m(todos de la clase sper, que no es cierto en
C T. 2ara reempla+ar, se debe utili+ar el modificador override, de lo contrario se considera
como un nuevo m(todo.
C T admite implementaciones e$pl!citas de m(todo de interfa+, que ayuda en la situacin
cuando una clase implementa varias interfaces que se utili+an m(todos con las firmas
mismo.
)irectivas de preprocesador de dar la capacidad de C T para compilar algunas secciones del
Cdigo, bajo ciertas condiciones. 7o hay equivalente en Java. C T no admite e$cepcin
marcada como Java, y slo tiene una e$cepcin sin control 5a e$cepcin de tiempo de
ejecucin6.
#cceso a los componentes C-% e$iste en. 7et, pero en Java se necesita un puente de
terceros. )e ;rabajo con cdigo nativo tambi(n es m"s f"cil en. 7et, ya que es posible
deshabilitar las restricciones de seguridad de CL8.
n Java todos los m(todos son m(todos virtuales, mientras que en C T, se debe indicar
claramente que los m(todos que se quiere ser virtual ya que por defecto no lo son. s
posible marcar m(todos como final en Java, que significa que el m(todo no puede ser
anulado por las clases derivadas. n C T esto se puede hacer por no marcar el m(todo como
virtual.
Javadoc es la herramienta utili+ada para e$traer documentacin de la #23 de cdigo fuente.
Javadoc genera documentacin G;%L desde el cdigo fuente comment.C T utili+a F%L
como el formato de la documentacin. La documentacin generada es un archivo F%L que
contiene los metadatos especificados por el usuario con muy poca informacin adicional
generada autom"ticamente.
3nserta Java, todo objeto de la clase en la memoria de montn, mientras que los primitivos
en la pila. 2oner objetos en el montn alguna ineficiencia, que no tienen que ver con C T
como se puede hacer una clase basadas en pila.
Las propiedades son una parte de C T que es similar al de captadores y definidores en Java,
que no es un mecanismo, sino un patrn en Java. )e est" forma, se podr" tener m"s control
sobre las propiedades a trav(s de slo lectura, slo escritura, * VW propiedades.
<n indi+ador es una sinta$is especial para la sobrecarga del operador XY para una clase en C
T que no e$iste en Java. <n indi+ador es til cuando una clase es un contenedor para otro
tipo de objeto. 3ndi+adores son fle$ibles ya que cualquier tipo de apoyo, tales como
nmeros enteros o cadenas, como los !ndices.
;ambi(n es posible crear indi+adores que permiten la sinta$is de matri+ multidimensional
donde se puede me+clar y combinar diferentes tipos de !ndices. 2or ltimo, indi+adores se
puede sobrecargar.
La palabra clave using se puede usar para el alias del nombre completo de un tipo similar a
la typedef forma se utili+a en C y C + +. sto es til en la creacin de cdigo legible
cuando el nombre completo de una clase es necesario para resolver conflictos de nombres,
que no e$iste en Java.
n Java los argumentos de un m(todo se pasan por el sentido de valor que un m(todo
funciona en las copias de los temas que se le pasa en lugar de sobre los temas reales. n C
T, como en C + + y C, en un sentido, es posible especificar que los argumentos de un
m(todo realmente como referencias a los art!culos que se pasa al m(todo en ve+ de copias.
C T proporciona la opcin de detectar de manera e$pl!cita o ignorar las condiciones de
desbordamiento de e$presiones y las conversiones de tipo. Las condiciones de
desbordamiento detectado en el cdigo de lan+ar una ,ystem.-verflo'$ception.
<na clase est"tica es una clase que no tiene miembros de instancia, no constructores de
instancia y no puede ser usado como una clase base. 7o hay clases est"ticas en Java.
n C T a tipos que aceptan valores 7<LL es un ejemplo del tipo de ,ystem.7ullable.
<n tipo anulable a4ade la posibilidad de un valor nulo es variable, adem"s de su rango de
valor original. Los tipos anulables son particularmente tiles cuando la cartograf!a C T
objetos a los esquemas de bases de datos relacionales desde 7<LL es un valor v"lido para
todos los tipos de datos en bases de datos ,ZL. 7o e$iste tal concepto en Java.
Los m(todos annimos son una caracter!stica de compa4!a a los delegados. <n m(todo
annimo es un bloque de cdigo que puede utili+arse cuando se espera un m(todo
delegado. sto simplifica el cdigo que utili+a los delegados al no e$igir un m(todo
separado para implementar la funcionalidad del delegado.
Creacin de una estructura de datos que sea compatible para ser utili+ado en un bucle
foreach, es de alguna manera ardua en Java y lenguajes de programacin C T, C T, pero
podr!a hacer que esto sea menos dolorosa la conversin de un m(todo o una propiedad en
un repetidor a trav(s del rendimiento de palabras clave.
n el momento de escribir estas l!neas C T slo est" disponible en Dindo's. ,e est"n
reali+ando esfuer+os en marcha para portarlo a otras plataformas, incluyendo Linu$ y
1ree0,).
n Java, es posible que las constantes se declaren en las interfaces que est"n entonces
disponibles para la aplicacin de las clases mientras que en C T esto no est" permitido. sto
no puede ser un gran problema en C T desde el uso principal de las constantes declaradas en
las interfaces es como una emulacin de los pobres de las enumeraciones.
Estr-5t-ra de -n pro:ra2a en Ja7a
La estructura de un programa de Java es similar a la de un programa de CSC++. 2or su
dise4o, permite a los programadores de cualquier otro lenguaje leer cdigo en Java sin
mucha dificultad. Java emplea siempre la 2rogramacin -rientada a -bjetos por lo que
todo el cdigo se incluye dentro de las clases. #unque ya se e$plicar"n detenidamente m"s
adelante, las clases son combinaciones de datos 5constantes y variables6 y rutinas
5m(todos6.
La 58ase pr4n54pa8 J e8 2Ktodo 2a4n
<n programa puede construirse empleando varias clases. n el caso m"s simple se utili+ar"
una nica clase. sta clase contiene el programa, rutina o m(todo principal9 main () y
en (ste se incluyen las sentencias del programa principal. stas sentencias se separan entre
s! por caracteres de punto y coma.
La estructura de un programa simple en Java es la siguiente9
Como primer ejemplo sencillo de programa escrito en Java se va a utili+ar uno que muestra
un mensaje por la pantalla del ordenador. 2or ejemplo, el programa Hola.java9
Como se ha indicado anteriormente, en un programa de Java todo se organi+a dentro de las
clases. n el ejemplo anterior, Hola es el nombre de la clase principal y del archivo que
contiene el cdigo fuente. ;odos los programas o aplicaciones independientes escritas en
Java tienen un m(todo.
Main o principal que, a su ve+, contiene un conjunto de sentencias. n Java los conjuntos
o bloques de sentencias se indican entre llaves { }. n el caso anterior, el conjunto de
sentencias se reduce a tres sentencias, que son llamadas a dos m(todos predefinidos en Java
5print y println6 que permiten visuali+ar te$to por el dispositivo de salida de datos por
defecto 5la pantalla6.
2or el momento y hasta que se e$plique con detalle el concepto de clase, los ejemplos de
programa que se utili+ar"n constar"n de una sola clase en la que se declara el m(todo
main. ste m(todo es el punto de arranque de la ejecucin de todo programa en Java.
Co2entar4os
Los comentarios se emplean para facilitar la tarea de los programadores humanos ya que no
reali+an ningn papel activo en la generacin del cdigo. Los comentarios que se pueden
introducir en el cdigo fuente de un programa de Java son del estilo de C y C++. #s!, el
compilador ignora todo lo que se incluya entre la secuencia de caracteres // y el final de
la l!nea. 2or ejemplo9
// Este es un comentario estilo C++, llega al final de la lnea
La pareja de caracteres / hay que escribirla sin dejar ningn espacio en blanco entre ellos.
l segundo tipo de comentario es el que se utili+a tambi(n en el lenguaje de programacin
C9 el compilador tambi(n ignora todo lo que se incluya entre las secuencias de caracteres
/! y !/. 2or ejemplo9
/* En este otro comentario estilo C, el final
lo indica la marca */
l comentario con // es m"s f"cil de teclear si slo ocupa una l!nea, pero si ocupa varias,
entonces el m"s sencillo es el de /!... !/. Los comentarios pueden incluir cualquier
car"cter v"lido en <nicode y no pueden anidarse.
stos dos formatos de comentario se emplean para los denominados comentarios de
implementacin. Los comentarios de implementacin se utili+an en el programa fuente para
resaltar cdigo o para aclarar un desarrollo en particular.
#dem"s, en Java e$iste un tercer tipo de comentario 5doc comments6 que facilita la
generacin de documentacin en formato G;%L al emplear algunas herramientas de
documentacin 5por ejemplo, javadoc incluida en el [it de )esarrollo de Java6.
Los comentarios para la documentacin se emplean para describir la especificacin del
cdigo, desde una perspectiva independiente cmo se ha implementado y ser le!do por
desarrolladores que no tengan necesariamente el cdigo fuente a la vista. )ebe evitarse
emplear los comentarios para dar panor"micas del cdigo y facilitar informacin que no
facilite la propia lectura del cdigo. jemplos de este tipo de comentarios9
Los comentarios deber!an contener slo informacin relevante para la lectura y
comprensin del programa. ;odos los programas deben empe+ar por un comentario que
describa el propsito del programa.
La discusin de decisiones de dise4o que no sean obvias 5triviales6 es apropiada, pero debe
evitarse la duplicidad de informacin dada por el propio cdigo. s muy comn que los
comentarios redundantes se desactualicen.
n general, se debe evitar incluir comentarios que puedan quedarse obsoletos conforme el
cdigo se desarrolle. 2or ejemplo, dentro de un comentario no deber!a incluirse
informacin acerca de cmo se ha construido un archivo fuente determinado o en que
directorio se haya el cdigo.
# veces la frecuencia de los comentarios refleja una peor calidad de cdigo. Cuando se
sienta la necesidad de a4adir un comentario, debe considerarse la reescritura del cdigo
para hacerlo m"s claro.
Con7en54En para 8os 5o2entar4os a8 4n454o de 8os pro:ra2as
;odos los archivos fuente deber!an comen+ar con un comentario estilo C que liste el
nombre de la clase, informacin de la versin, fecha y el aviso de copyright9
Ident4C45adores
Los identificadores son nombres que se les asignan a variables, m(todos, clases en el
cdigo fuente de un programa. Los identificadores slo e$isten en el cdigo del programa
fuente y no en el programa objeto 5resultado de la compilacin del programa fuente6. ;odo
nuevo identificador que se emplee en un programa Java debe definirse previamente a su
utili+acin.
Las normas para la construccin de un identificador empleando el lenguaje de
programacin Java son las siguientes9
<n identificador comien+a por una letra, un car"cter de subrayado 5"6 o un car"cter de
dlar 5#6.
#unque no se recomienda emplear el car"cter #, ya que el compilador suele utili+arlos de
forma interna para crear identificadores propios.
Los siguientes caracteres pueden ser tambi(n d!gitos. 2ero no pueden emplearse espacios
en blanco u otros caracteres como el signo de interrogacin 5$6 o el signo del tanto por
ciento 5%6.
7o hay l!mite m"$imo de caracteres.
n los identificadores del cdigo fuente de un programa en Java se distinguen las
maysculas de las minsculas. 2or ejemplo, casa, C&'& y Casa son tres identificadores
diferentes.
2ueden incluir caracteres <nicode, con lo que se pueden emplear secuencias de escape
/uxxxx para representar estos caracteres.
7o puede emplearse el identificador de una variable o cualquier otro elemento del cdigo
fuente del programa para otro ya e$istente en el mismo bloque. $cepcin9 variable
miembro y local con el mismo identificador.
$iste una serie de palabras reservadas que no pueden emplearse como identificadores por
el programador en el cdigo fuente para otros usos. 2or ejemplo, la palabra dou(le se
utili+a para definir un tipo de dato real y la palabra for se emplea para construir un tipo
determinado de bucle. n la siguiente tabla, se muestran las palabras reservadas en Java.
#lgunos de estos identificadores reservados no tienen todav!a uso en la implementacin
actual del lenguaje Java. n concreto, los identificadores marcados con un asterisco ! no se
utili+an actualmente.
2or otro lado a continuacin se muestran los nombres de m(todos reservados en Java cuyo
significado y utili+acin se e$plicar" m"s adelante cuando se menciones la clase
predefinida )(ject.
#unque la forma de escribir los identificadores en Java no est" normali+ada, a continuacin
se dan algunas recomendaciones para la eleccin de estos identificadores9
s conveniente utili+ar identificadores autoe$plicativos para orientar al usuario o a
cualquier otra persona que accede al cdigo fuente de un programa sobre lo que
representan, sin necesidad de utili+ar los comentarios en el propio cdigo fuente. 2or
ejemplo, para almacenar el valor del radio de una esfera podr!a declararse una variable con
el identificador radio, radioesfera o radiodeunaesfera.
,i el identificador se compone de m"s de una palabra, (stas se agrupan y despu(s de la
primera el resto comien+a con una letra mayscula, como por ejemplo9 es*isi(le
radioEsfera.
l signo de subrayado se acepta en cualquier identificador pero por convencin slo se
emplea para separar palabras en identificadores en constantes 5por convencin las
constantes se escriben completamente en maysculas y esto dificulta la separacin de los
nombres6. 2or ejemplo, para un valor constante que almacena un valor num(rico que
representa el nmero m"$imo de alumnos con los que trabaja el programa se podr!a
declarar el identificador de la constante +,ME-)"M&./M)"&0,M+)'.
Con7en54ones para 8a 8e:4;484dad de8 pro:ra2a C-ente
#unque la definicin e$acta de la indentacin 5espacios vs. tabuladores6 no se especifica en
el lenguaje Java, se recomienda emplear una secuencia de cuatro espacios como unidad de
indentacin.
2or otro lado se recomienda evitar las l!neas de m"s de BA caracteres en el cdigo fuente ya
que no se manejan correctamente por muchos terminales y herramientas de edicin.
2. DL-K 4nstr-554ones de;e2os tener en 5-enta para 5rear -n pro:ra2a sen5488oF
2ara crear un programa necesitaremos reali+ar los siguientes pasos9
Crear el cdigo fuente. <n archivo de cdigo fuente contiene te$to escrito en el lenguaje de
programacin Java. ,e puede utili+ar un simple editor de te$to para crear y editar el cdigo.
Compilar el cdigo fuente. l compilador traslada el cdigo fuente en instrucciones que la
m"quina virtual de Java pueda entender. l compilador crea esas instrucciones en un
archivo bytecode.
jecutar el programa. l int(rprete Java, instalado en el sistema operativo, implementa la
m"quina virtual de Java. ste int(rprete transforma el bytecode en instrucciones que pueda
entender el sistema operativo.
E8e2entos de -n pro:ra2a en Ja7a
<n programa en java, debe tener los siguientes elementos9\L# ]-7# ) 37CL<,3^79
que es similar al pre@procesador de C, donde especificamos los paquetes que vamos a usar
en nuestro programa. Los cuales deben ser especificados al inicio del programa, con ayuda
de la sentencia import y acompa4ado de un punto y coma 5E6 al final de la instruccin.
jemplo9
3mport java$.s'ing.J-ption2aneE
3mport java.io.\E
n java, podemos incluir todo el paquete, como en el caso de java.io, al agregarle el
asteriscoE o simplemente, especificamos que archivos del paquete que queremos usar, como
en el primer caso, en el cual estamos incluyendo 5o mejor dicho importando6 el archivo
J-ption2ane, del paquete java$.s'ing. 5l cual nos ayuda para poder usar las cajitas de
te$to para mandar informacin a la pantalla o para leerla desde el telado6.
\L#, CL#,,9 <n 2rograma en java, debe poseer #L %7-, una clase, con la cual se
debe proseguir en la configuracin de nuestro programa. jemplo9
Class 2rimer2rograma _
Como puede verse, una clase se especifica con la palabra reservada class.
<na clase puede ser9 2blica o 2rivada.
)e lo cual hablares m"s adelante, por el momento el usuario, debe nicamente especificar
una clase, nicamente con class por que despu(s comprender" la diferencia y podr"
aplicarlo a sus programas. #dem"s el nombre de la clase, debe iniciar con mayscula.
\L 28-/8#%# 2837C32#L9 l cual siempre, siempre, siempre se especificar" de la
siguiente manera9 public static void main 5,tring argsXY6 _Lo que est" entre los par(ntesis,
indica nada m"s los argumentos que recibe nuestro programa, el cual ,3%28 ,8` uno
del tipo ,tring, el nombre de args, puede ser cambiado, pero 7<7C# debe omitirse los
corchetes.
EHp845a54En
n la l!nea numero <no, encontramos la llamada al paquete, el cual es java.lang 5(ste
paquete nos ayuda para usar las funciones matem"ticas y otras funciones como
,ystem.out.println, sin embargo 7- es necesario especificarlo, ya que Java, por defecto,
incluye (ste paquete en todos los programas que creamos6.
Luego encontramos la declaracin de la clase, la cual es 2rimer2rograma, como puede
observar la primera letra es mayscula, y como el nombre est" compuesto por dos palabras
52rimer y 2rograma6, es por tal ra+n que cada una de ellas tiene su primera letra
mayscula. -tra cosa importante es que, el nombre del archivo, 5que tiene e$tensin
\.java6, ,3%28 se debe llamar igual que la claseE es decir que, este cdigo, est"
guardado como9
2rimer2rograma.java.
,i est" usando J/rasp, generalmente el coloca el nombre y lo nico que tenemos que hacer
es dar clic en guardar en el command'indo', pero a veces, con esos paradigmas de la
programacin, J/rasp no lo coloca, es por tal ra+n que debemos estar seguros que el
archivo ha sido guardado con el mismo nombre de la clase.
2or que de lo contrario lan+ar" una e$cepcin 5de la cual hablaremos m"s adelante6 y 7-
correr" el programa. 2osteriormente, encontramos la sentencia ,ystem.out.println 56, el
cual nos sirve para mandar informacin a pantalla, la cual ser" mostrada en la consola de
)-,, y ser" m"s o menos as!9
". In7est4:-e so;re 8os 2Ktodos de deC4n454En para 5o2p8e2entar e8 te2a
Los m(todos son funciones que pueden ser llamadas dentro de la clase o por otras clases.
La implementacin de un m(todo consta de dos partes, una declaracin y un cuerpo. La
declaracin en Java de un m(todo se puede e$presar esquem"ticamente como9
Colocarse la definicin completa del m(todo fuera de la clase, convirti(ndose en una
funcin inline. n Java, la definicin completa del m(todo debe estar dentro de la
definicin de la clase y no se permite la posibilidad de m(todos inline, por lo tanto, Java no
proporciona al programador distinciones entre m(todos normales y m(todos inline.
Los m(todos pueden tener numerosos atributos a la hora de declararlos, incluyendo el
control de acceso, si es est"tico o no est"tico, etc. La sinta$is utili+ada para hacer que un
m(todo sea est"tico y su interpretacin, es semejante en Java y en C++. ,in embargo, la
sinta$is utili+ada para establecer el control de acceso y su interpretacin, es muy diferente
en Java y en C++.
La lista de argumentos es opcional, tanto en Java como en C++, y en los dos casos puede
limitarse a su m!nima e$presin consistente en dos par(ntesis, sin par"metro alguno en su
interior. -pcionalmente, C++ permite utili+ar la palabra void para indicar que la lista de
argumentos est" vac!a, en Java no se usa. Los par"metros, o argumentos, se utili+an para
pasar informacin al cuerpo del m(todo.
La sinta$is de la declaracin completa de un m(todo es la que se muestra a continuacin
con los !tems opcionales en it"lica y los !tems requeridos en negrilla9
specificador#cceso, determina si otros objetos pueden acceder al m(todo y cmo pueden
hacerlo. st" soportado en Java y en C++, pero la sinta$is e interpretacin es
considerablemente diferente.
,tatic, indica que los m(todos pueden ser accedidos sin necesidad de instanciar un objeto
del tipo que determina la clase. C++ y Java son similares en el soporte de esta
caracter!stica.
#bstract, indica que el m(todo no est" definido en la clase, sino que se encuentra declarado
ah! para ser definido en una subclase 5sobreescrito6. C++ tambi(n soporta esta capacidad
con una sinta$is diferente a Java, pero con similar interpretacin.
1inal, evita que un m(todo pueda ser sobreescrito.
7ative, son m(todos escritos es otro lenguaje. Java soporta actualmente C y C++.
,ynchroni+ed, se usa en el soporte de multithreading, que se ver" tambi(n en este ;utorial.
listaNdeNargumentos, es la lista opcional de par"metros que se pueden pasar al m(todo
;hro's lista$cepciones, indica las e$cepciones que puede generar y manipular el m(todo.
;ambi(n se ver"n en este ;utorial a fondo las e$cepciones en Java.
Va8or de Retorno de -n MKtodo
n Java es imprescindible que a la hora de la declaracin de un m(todo, se indique el tipo
de dato que ha de devolver. ,i no devuelve ningn valor, se indicar" el tipo void como
retorno.
Los m(todos y funciones en C++ pueden devolver una variable u objeto, bien sea por valor
5se devuelve una copia6, por puntero o por referencia. Java no soporta punteros, as! que no
puede devolver nada por puntero. ;odos los tipos primitivos en Java se devuelven por valor
y todos los objetos se devuelven por referencia.
l retorno de la referencia a un objeto en Java es similar a devolver un puntero a un objeto
situado en memoria din"mica en C++, e$cepto que la sinta$is es mucho m"s simple en
Java, en donde el !tem que se devuelve es la direccin de la posicin en memoria din"mica
donde se encuentra almacenado el objeto.
2ara devolver un valor se utili+a la palabra clave return. La palabra clave return va seguida
de una e$presin que ser" evaluada para saber el valor de retorno. sta e$presin puede ser
compleja o puede ser simplemente el nombre de un objeto, una variable de tipo primitivo o
una constante.
,i un programa Java devuelve una referencia a un objeto y esa referencia no es asignada a
ninguna variable, o utili+ada en una e$presin, el objeto se marca inmediatamente para que
el reciclador de memoria en su siguiente ejecucin devuelve la memoria ocupada por el
objeto al sistema, asumiendo que la direccin no se encuentra ya almacenada en ninguna
otra variable.
n C++, si un programa devuelve un puntero a un objeto situado en memoria din"mica y el
valor de ese puntero no se asigna a una variable, la posibilidad de devolver la memoria al
sistema se pierde y se producir" un memory lea., asumiendo que la direccin no est" ya
disponible para almacenar ninguna otra variable.
;anto en Java como en C++ el tipo del valor de retorno debe coincidir con el tipo de retorno
que se ha indicado en la declaracin del m(todoE aunque en Java, el tipo actual de retorno
puede ser una subclase del tipo que se ha indicado en la declaracin del m(todo, lo cual no
se permite en C++. n Java esto es posible porque todas las clases heredan desde un objeto
ra!+ comn a todos ellos9 -bject.
n general, se permite almacenar una referencia a un objeto en una variable de referencia
que sea una superclase de ese objeto. ;ambi(n se puede utili+ar un interfa+ como tipo de
retorno, en cuyo caso, el objeto retornado debe implementar dicho interfa+.
No2;re de8 MKtodo
l nombre del m(todo puede ser cualquier identificador legal en Java. Java soporta el
concepto de sobrecarga de m(todos, es decir, permite que dos m(todos compartan el mismo
nombre pero con diferente lista de argumentos, de forma que el compilador pueda
diferenciar claramente cuando se invoca a uno o a otro, en funcin de los par"metros que se
utilicen en la llamada al m(todo.
l siguiente fragmento de cdigo muestra una clase Java con cuatro m(todos
sobrecargados, el ltimo no es legal porque tiene el mismo nombre y lista de argumentos
que otro previamente declarado9
;odo lenguaje de programacin orientado a objetos debe soportar las caracter!sticas de
encapsulacin, herencia y polimorfismo. La sobrecarga de m(todos es considerada por
algunos autores como polimorfismo en tiempo de compilacin.
n C++, dos versiones sobrecargadas de una misma funcin pueden devolver tipos
diferentes. n Java, los m(todos sobrecargados siempre deben devolver el mismo tipo.
MKtodos de Instan54a
Cuando se incluye un m(todo en una definicin de una clase Java sin utili+ar la palabra
clave static, estamos generando un m(todo de instancia. #unque cada objeto de la clase no
contiene su propia copia de un m(todo de instancia 5no e$isten mltiples copias del m(todo
en memoria6, el resultado final es como si fuese as!, como si cada objeto dispusiese de su
propia copia del m(todo.
Cuando se invoca un m(todo de instancia a trav(s de un objeto determinado, si este m(todo
referencia a variables de instancia de la clase, en realidad se est"n referenciando variables
de instancia espec!ficas del objeto espec!fico que se est" invocando.
La llamada a los m(todos de instancia en Java se reali+a utili+ando el nombre del objeto, el
operador punto y el nombre del m(todo.
n C++, se puede acceder de este mismo modo o utili+ando una variable puntero que
apunte al objeto
Los m(todos de instancia tienen acceso tanto a las variables de instancia como a las
variables de clase, tanto en Java como en C++.
MKtodos Est3t45os
Cuando una funcin es incluida en una definicin de clase C++, o un m(todo e incluso en
una definicin de una clase Java, y se utili+a la palabra static, se obtiene un m(todo est"tico
o m(todo de clase.
Lo m"s significativo de los m(todos de clase es que pueden ser invocados sin necesidad de
que haya que instanciar ningn objeto de la clase. n Java se puede invocar un m(todo de
clase utili+ando el nombre de la clase, el operador punto y el nombre del m(todo.
n C++, hay que utili+ar el operador de resolucin de "mbito para poder invocar a un
m(todo de clase9
n Java, los m(todos de clase operan solamente como variables de claseE no tienen acceso a
variables de instancia de la clase, a no ser que se cree un nuevo objeto y se acceda a las
variables de instancia a trav(s de ese objeto.
,i se observa el siguiente tro+o de cdigo de ejemplo9
La modificacin de la variable numeroNdeNcapitulos no funciona porque se est" violando
una de las reglas de acceso al intentar acceder desde un m(todo est"tico a una variable no
est"tica.
;odas las clases que se derivan, cuando se declaran est"ticas, comparten la misma p"gina
de variablesE es decir, todos los objetos que se generen comparten la misma +ona de
memoria. Los m(todos est"ticos se usan para acceder solamente a variables est"ticas.
n el cdigo anterior, si se llama al m(todo un%etodo 56 a trav(s de un puntero a funcin,
no se podr!a acceder a var, porque al utili+ar un puntero a funcin no se pasa
impl!citamente el puntero al propio objeto 5this6. ,in embargo, s! se podr!a acceder a var si
fuese est"tica, porque siempre estar!a en la misma posicin de memoria para todos los
objetos que se creasen de la clase <naClase.
Paso de par32etros
n C++, se puede declarar un m(todo en una clase y definirlo luego dentro de la clase 5bajo
ciertas condiciones6 o definirlo fuera de la clase. # la hora de declararlo, es necesario
indicar el tipo de argumentos que necesita, pero no se requiere indicar sus nombres 5aunque
pueda hacerse6. # la hora de definir el m(todo s! tiene que indicarse el nombre de los
argumentos que necesita el m(todo.
n Java, todos los m(todos deben estar declarados y definidos dentro de la clase, y hay que
indicar el tipo y nombre de los argumentos o par"metros que acepta. Los argumentos son
como variables locales declaradas en el cuerpo del m(todo que est"n iniciali+adas al valor
que se pasa como par"metro en la invocacin del m(todo.
n Java, todos los argumentos de tipos primitivos deben pasarse por valor, mientras que los
objetos deben pasarse por referencia. Cuando se pasa un objeto por referencia, se est"
pasando la direccin de memoria en la que se encuentra almacenado el objeto.
,i se modifica una variable que haya sido pasada por valor, no se modificar" la variable
original que se haya utili+ado para invocar al m(todo, mientras que si se modifica una
variable pasada por referencia, la variable original del m(todo de llamada se ver" afectada
de los cambios que se produ+can en el m(todo al que se le ha pasado como argumento.
n C++, se puede pasar como par"metro un puntero que apunte a una funcin dentro de
otra funcin, y utili+ar este puntero en la segunda funcin para llamar a la primera. sta
capacidad no est" directamente soportada en Java.
,in embargo, en algunos casos, se puede conseguir casi lo mismo encapsulando la primero
funcin como un m(todo de instancia de un objeto y luego pasar el objeto a otro m(todo,
donde el primer m(todo se puede ejecutar a trav(s del objeto.
;anto en Java como en C++, los m(todos tienen acceso directo a las variables miembro de
la clase. l nombre de un argumento puede tener el mismo nombre que una variable
miembro de la clase. n este caso, la variable local que resulta del argumento del m(todo,
oculta a la variable miembro de la clase.
Cuando se instancia un m(todo se pasa siempre una referencia al propio objeto que ha
llamado al m(todo, es la referencia this.
#. Rea845e -n 2apa 5on5ept-a8 so;e e8 te2a anter4or.
%. EHpon:a $& 7enta>as de para -t484@ar 4nstr-554ones repet4t47as
s muy comn encontrar en los programas operaciones que se deben ejecutar un nmero
repetido de veces en per!odos m"s o menos espaciados. ,i bien las instrucciones son las
mismas, los datos sobre los que operan var!an.
# nuestro alrededor, encontramos problemas que presentan esas caracter!sticas, por
ejemplo9 el c"lculo de la nota final de los estudiantes de 2rogramacin 333, se reali+ar"
tantas veces como alumnos hayan inscritos en dicha asignatura, el c"lculo del salario de los
empleados de una empresa, etc.
n estos casos la solucin que se dise4e para un solo grupo de datos se debe repetir tantas
veces como sea necesario 5de acuerdo al nmero de estudiantes y de empleados para los
ejemplos anteriores6.
Los c"lculos simples o la manipulacin de peque4os conjuntos de datos se pueden reali+ar
f"cilmente a mano, pero las tareas grandes o repetitivas son reali+adas con mayor eficacia
por una computadora, ya que estas est"n especialmente preparadas para ello.
2ara repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a
los cuales se les conoce con el nombre de estructura repetitiva, estructura iterativa, la+o o
bucle. n C, al igual que en Java podemos encontrar tres tipos de ciclos9
a ntrada #segurada 5'hile6
a Ciclo Controlado 2or Contador 5for6
a Gacer %ientras 5do... 'hile6
1-n54ona24ento de Un C458o
<n ciclo, funciona de la siguiente manera9 vala una condicin de resultar cierta, reali+a
una accin o bloque de acciones, luego vuelve a evaluar la condicin y si nuevamente
resulta cierta, reali+a la 5s6 accin 5es6. Cuando la condicin de cmo resultado falso, se
sale del ciclo y contina con la ejecucin normal del programa.
A5-2-8ador:
s una variable, que, como su nombre lo indica se encarga de acumular valores. sto se
vuelve muy til, por ejemplo, cuando queremos encontrar la suma de los nmeros del A al
H, en el acumulador, vamos guardando los valores de dichas cifras. 2uede ser tanto real
como entera. ,u valor inicial, en la mayor!a de los casos es cero.
Contador:
s una variable de tipo entero, que nos ayuda, en el programa a contabili+ar el nmero de
ejecuciones de una misma accin, de un grupo de alumnos etc. <n acumulador tiene tres
valores distintos9
Va8or In454a8: es el valor con el cual iniciamos nuestro contador. /eneralmente es cero.
sta asignacin puede hacerse cuando se declara la variable.
Va8or 14na8: despu(s de la ejecucin del ciclo, el valor del contador, ser" distinto a su valor
inicial, este puede ser mayo o menor que el mismo, todo depende si fue una cuenta
creciente o decreciente.
Va8or de Ca2;4o: s el valor Constante, en el cual se ir" incrementando nuestro contador,
este puede ser positivo o negativoE es decir, si la cuanta se reali+a de manera ascendente o
descendente.
Bandera:
Las variables tipo bandera son aquellas que slo admiten dos valores9 cierto o falso, true o
false, hombre o mujer... etc.
C458o de Entrada Ase:-rada
La sinta$is es la siguiente9
MN48e 5condicin6
#ccinO
1unciona de la siguiente manera9 primero evala la condicin, si da como resultado cierta
reali+a la accin, luego vuelve a evaluar la condicin, si su resultado es falso, se sale del
ciclo y contina con la ejecucin del programa.
Gay que tener mucho cuidado, cuando trabajamos con ciclos, ya que podemos caer en un
ciclo infinito, es decir que nunca se sale de (l. 2or lo cual en las acciones debemos siempre
colocar algo que haga que se modifique el resultado de l condicin, lo cual puede ser una
bandera, un contador o un acumulador.
C458o Contro8ado por 5ontador.
n algunas ocasiones, sabemos a ciencia cierta el nmero de veces que se tiene que repetir
una misma accin o bloque de acciones. P para ello es que nos sirve, esta estructura. ,u
sinta$is es la siguiente9
1or 5valor inicialE condicinE incremento6
#ccinE
)onde9
&alor inicial9 es el valor con el cual iniciali+amos nuestra variable de control.
Condicin9 si la cumple, ejecuta la accin o acciones e incrementa o decrementa la variable
de control, sino la cumple la condicin, se sale del ciclo.
3ncrementoE que puede ser positivo o negativo 5decremento6.
C458o Do... PN48e
s te ciclo funciona de la siguiente manera, reali+a la accin o conjunto de acciones, luego
evala una condicin de resultar cierta vuelve a reali+ar la 5s6 accin 5es6. Cuando sea falsa,
se sale del ciclo.
1or2ato:
Do _
,entenciaE
.
.
b MN48e 5ce$pLd6E
La diferencia fundamental, entre el ciclo 'hile y do...'hile, es que en este ultimo, las
sentencias se reali+ar"n por lo menos una ve+, en cambio, con 'hile, solo se cumplir"n
mientras se cumpla la condicin, lo cual puede ser nunca.
ntre las ventajas de utili+ar estas instrucciones repetitivas, tenemos9
Las sentencias repetitivas o de bucle permiten la ejecucin repetida de bloques de
sentencias
Los bucles de tipo 12ile y for comprueban si deben continuar repitiendo la sentencia o
bloque de sentencias que forman el cuerpo del bucle antes de que el cuerpo del bucle se
ejecute, mientras que el bucle do312ile lo hace despu(s de haberlo ejecutado.
Llevar el cdigo en orden
Como empie+a un bloque, tambi(n lo termina.
2ermite que en un programa se estable+can diferentes frmulas o procedimientos, cada uno
en su bucle, sin afectar el resto del cdigo del programa.
2one condicin y de acuerdo a la decisin que se tome se llega a una conclusin o
resultado.
,e pueden incorporar subprogramas, y se ejecutan segn la sentencia asignada.
2ermite tomar decisiones mltiples, presenta diversas posibilidades
8eali+ar una accin sucesivamente mientras se cumpla una determinada condicin.
2ermite ver dnde hay un error, cuando se ejecuta, para poderlo depurar, en ese bloque.
+. Rea845e -n 2apa 5on5ept-a8 5on 2& tKr24nos so;re t4po de datos J de58ara54ones.
CONCLUSION
Creemos finalmente que los datos y el desarrollo de los ejercicios anteriormente resueltos
servir"n eficientemente para profundi+ar nuestra base lgica en lo que concierne tanto lo
que es el lenguaje de programacin Java y sus fundamentos, as! como lo que abarca a la
estructura y el comportamiento que compone a un objeto, adem"s para aumentar nuestros
conocimientos sobre el tema, que de una u otra manera, ser" aplicado en un determinado
momento de nuestra vida laboral.
Java fue pensado originalmente para utili+arse en cualquier tipo de electrodom(stico pero la
idea fracas. <no de los fundadores de ,un rescat la idea para utili+arla en el "mbito de
3nternet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo
puede utili+ar todo el mundo y es gratuito. <na de los primeros triunfos de Java fue que se
integr en el navegador 7etscape y permit!a ejecutar programas dentro de una p"gina Deb,
hasta entonces impensable con el G;%L
n la actualidad es un lenguaje muy e$tendido y cada ve+ cobra m"s importancia tanto en
el "mbito de 3nternet como en la inform"tica en general. st" desarrollado por la compa4!a
,un %icrosystems con gran dedicacin y siempre enfocado a cubrir las necesidades
tecnolgicas m"s punteras.
# la vanguardia de la tecnolog!a que va saliendo al mercado a diario, d!a a d!a Java se
utili+a en un amplio abanico de posibilidades y casi cualquier cosa que se puede hacer en
cualquier lenguaje se puede hacer tambi(n en Java y muchas veces con grandes ventajas.
2ara lo que nos interesa a nosotros, con Java podemos programar p"ginas Deb din"micas,
con accesos a bases de datos, utili+ando F%L, con cualquier tipo de cone$in de red entre
cualquier sistema. n general, cualquier aplicacin que deseemos hacer con acceso a trav(s
Deb se puede hacer utili+ando Java.
2ara desarrollar todo este material, tuvimos el acompa4amiento tutorial especiali+ado del
tutor encargado 5por el sistema virtual6 y del asesor presencial del curso quienes nos
proporcionaron la informacin necesaria y que a la ve+ nos oriento para corregir los datos
errneos que nos permitieron iniciar y culminar satisfactoriamente el producto de
aprendi+aje.
BIBLIOGRA1*A
http9SS'''.javahispano.orgScontenidosSesSintroduccrionNaNlaNprogramacrionNorien
tadaNaNobjetS
http9SS'''.desarrollo'eb.comSarticulosS>::A.php
http9SSprogramacionudb.ohlog.comSprogramacion@orientada@a@objetos.oh?BAIB.html
http9SStvdi.det.uvigo.esSeavilasS<%LSnode:C.html
http9SSsophia.javeriana.edu.coSeacarrilloS2--S%aterialSClase?@-bjetos@Clase.pdf
http9SSoc'.upm.esSlenguajes@y@sistemas@informaticosSprogramacion@en@java@
http9SSiSContenidosSLectura-bligatoriaS?@estructuradeunprogramaenjava.pdf
http9SSes.articlesnatch.comS#rticleS)ifferences@bet'een@C@@and@JavaSCL>>>>
http9SSes.'i.iboo.s.orgS'i.iS2rogramacifC:f0:nNenNJavaNSN2rimerNprograma
http9SS'''.programacion.comSjavaStutorialSprimeraNta+aS:S
http9SS'''.itapi+aco.edu.m$SpaginasSJava;utSfroufeSparteCScapC@C.html
http9SS>IC.HB.B.>CSerubenS?AAHS3ntro2rogSstructurasf?ArepetitivasNjava.pdf
http9SSyosh:C.tripod.comSid>.html
http9SSyosh:C.tripod.comSid?.html
http9SS'''.lenguajes@de@programacion.comSprogramacion@orientada@a@bjetos.shtml
http9SSes.'i.ipedia.orgS'i.iS2rogramacifC:f0:nNestructurada
http9SSes.'i.ipedia.orgS'i.iS2rogramacifC:f0:nNmodular
http9SSes.'i.ipedia.orgS'i.iSLenguajeNdeNprogramacifC:f0:nN#da
http9SSes.'i.ipedia.orgS'i.iS#ction,cript
http9SSes.'i.ipedia.orgS'i.iSLenguajeNdeNprogramacifC:f0:nNJava
http9SSes.'i.ipedia.orgS'i.iSLenguajeNdeNprogramacifC:f0:nN2ascal
http9SSes.'i.ipedia.orgS'i.iS%odula@:

You might also like