Vous êtes sur la page 1sur 45

22/10/2015

eXe

AVISO:Estapginahasidogeneradaparafacilitarlaimpresindeloscontenidos.Losenlacesexternosa
otraspginasnosernfuncionales.

Introduccinalaprogramacin.

Casoprctico

La evolucin de Internet y de las nuevas


tecnologas, as como las diferentes
posibilidades para establecer nuevas lneas de
negocioparalaempresaBKProgramacin,han
hechoqueAda haya decidido abrir una va de
innovacin. Para ello, su empresa deber
realizar el desarrollo de sus aplicaciones a
travsdelenguajesytcnicasdeprogramacin
modernos, aunque con una eficiencia y
flexibilidadcontrastadas.
Mara y Juan, ayudados y orientados por Ada, recordarn y ampliarn sus
conocimientos relacionados con la programacin, permitindoles crear
softwarequepuedaadaptarseanuevassituaciones,comoelfuncionamiento
endiferentesplataformas(PDA,Mviles,Web,etc.)olainteraccinconbases
dedatos.Todoellosinperderdevistadedondepartenyhaciadndequieren
redirigirsusesfuerzos.
Estas innovaciones, junto a la predisposicin para adaptarse y evolucionar
que BK Programacin est potenciando en todas sus reas, repercutirn en
una mayor capacidad de respuesta ante las necesidades de sus posibles
clientes.Endefinitiva,conseguirmayorcompetitividad.

1.Introduccin.
Cuntas acciones de las que has realizado hoy, crees que estn relacionadas con la
programacin?Hagamosunrepasodelosprimerosinstantesdelda:tehadespertadola
alarmadetutelfonomviloradiodespertador,haspreparadoeldesayunoutilizandoel
microondas, mientras desayunabas has visto u odo las ltimas noticias a travs de tu
receptor de televisin digital terrestre, te has vestido y puede que hayas utilizado el
ascensor para bajar al portal y salir a la calle, etc. Quiz no es necesario que
continuemos ms para darnos cuenta de que casi todo lo que nos rodea, en alguna
medida, est relacionado con la programacin, los programas y el tratamiento de algn
tipodeinformacin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

1/45

22/10/2015

eXe

El volumen de datos que actualmente manejamos y sus


innumerables posibilidades de tratamiento constituyen un vasto
territorioenelquelosprogramadorestienenmuchoquedecir.
En esta primera unidad realizaremos un recorrido por los
conceptos fundamentales de la programacin de aplicaciones.
Iniciaremosnuestrocaminoconociendoconquvamosatrabajar,
qu tcnicas podemos emplear y qu es lo que pretendemos
conseguir.Continuandoconelanlisisdelasdiferentesformasde
programacin existentes, identificaremos qu fases conforman el
desarrollo de un programa, avanzaremos detallando las
caractersticas relevantes de cada uno de los lenguajes de
programacin disponibles, para posteriormente, realizar una visin general del lenguaje
de programacin Java. Finalmente, tendremos la oportunidad de conocer con qu
herramientas podramos desarrollar nuestros programas, escogiendo entre una de ellas
paraponernosmanosalaobrautilizandoellenguajeJava.

2.Programasyprogramacin.

Casoprctico

Ada conoce bien lo que significa tener que


llevar a cabo el proceso completo de creacin
desoftwareysabeque,enocasiones,nosele
da la importancia que debera a las fases
inicialesdeesteproceso.QuierequeJuan,que
desarrolla programas casi sin darse cuenta,
recuerde las ventajas que aporta un buen
anlisis inicial de los problemas a solucionar y
quenoabordeeldesarrollodesusprogramassentndosedirectamenteante
elordenadorateclearcdigo.
JuanlecomentaaAdayaMara:Laverdadesquecuandoconocesbien
un lenguaje de programacin crees que puedes hacer cualquier programa
directamentesobreelordenador,peroalfinaltedascuentadequedeberas
haberteparadoaplanificartutrabajo.Muchasvecestienesquevolveratrs,
recodificar y en ocasiones, rehacer gran parte del programa porque lo que
tienesnoestbienplanteado.
Mara,quepermaneceatentaaloquedicenAdayJuan,quiereaprenderbien
desdeelprincipioytendrlaventajadetenerasuladoadosexpertos.

2.1.Buscandounasolucin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

2/45

22/10/2015

eXe

Generalmente,laprimeraraznquemueveaunapersonahacia
elaprendizajedelaprogramacinesutilizarelordenadorcomo
herramientapararesolverproblemasconcretos.Comoenlavida
real, la bsqueda y obtencin de una solucin a un problema
determinado, utilizando medios informticos, se lleva a cabo
siguiendo unos pasos fundamentales. En la siguiente tabla
podemosverestasanalogas.
ResolucindeproblemasEnlavidareal...EnProgramacin...
Observacin
dela
situacino
problema.

Anlisisdelproblema:requierequeel
problemaseadefinidoycomprendido
claramenteparaquepuedaseranalizadocon
tododetalle.

Pensamos
enunao
varias
posibles
soluciones.

Diseoodesarrollodealgoritmos:
procedimientopasoapasoparasolucionarel
problemadado.

Aplicamosla
solucinque
estimamos
ms
adecuada.

Resolucindelalgoritmoelegidoenla
computadora:consisteenconvertirel
algoritmoenprograma,ejecutarloy
comprobarquesolucionaverdaderamenteel
problema.

Quvirtudesdeberatenernuestrasolucin?
Correccinyeficacia:siresuelveelproblemaadecuadamente.
Eficiencia:silohaceenuntiempomnimoyconunusoptimodelosrecursosdel
sistema.
Paraconseguirlo,cuandoafrontemoslaconstruccindelasolucintendremosquetener
encuentalossiguientesconceptos:
1. Abstraccin: se trata de realizar un anlisis del problema para descomponerlo en
problemasmspequeosydemenorcomplejidad,describiendocadaunodeellos
de manera precisa. Divide y vencers, esta suele ser considerada una filosofa
generalpararesolverproblemasydeaququesunombrenosloformepartedel
vocabularioinformtico,sinoquetambinseutilizaenmuchosotrosmbitos.
2. Encapsulacin: consiste en ocultar la informacin para poder implementarla de
diferentesmanerassinqueestoinfluyaenelrestodeelementos.
3. Modularidad:estructuraremoscadaparteenmdulosindependientes,cadaunode
ellostendrsufuncincorrespondiente.

Citasparapensar

RogerPressman:Elcomienzodelasabiduraparauningenierodesoftware
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

3/45

22/10/2015

eXe

esreconocerladiferenciaentrehacerqueunprogramafuncioneyconseguir
quelohagacorrectamente.

2.2.Algoritmosyprogramas.
Despusdeanalizarendetalleelproblemaasolucionar,hemosdedisearydesarrollar
elalgoritmoadecuado.Pero,Quesunalgoritmo?
Algoritmo: secuencia ordenada de pasos, descrita sin ambigedades, que
conducenalasolucindeunproblemadado.
Los algoritmos son independientes de los lenguajes de
programacinydelascomputadorasdondeseejecutan.Un
mismo algoritmo puede ser expresado en diferentes
lenguajes de programacin y podra ser ejecutado en
diferentesdispositivos.Piensaenunarecetadecocina,sta
puedeserexpresadaencastellano,inglsofrancs,podra
ser cocinada en fogn o vitrocermica, por un cocinero o
ms, etc. Pero independientemente de todas estas
circunstancias, el plato se preparar siguiendo los mismos
pasos.
La diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos
que permiten resolver el problema, deben escribirse en un determinado lenguaje de
programacinparaquepuedanserejecutadosenelordenadoryasobtenerlasolucin.
Los lenguajes de programacin son slo un medio para expresar el algoritmo y el
ordenadorunprocesadorparaejecutarlo.Eldiseodelosalgoritmosserunatareaque
necesitar de la creatividad y conocimientos de las tcnicas de programacin. Estilos
distintos,dedistintosprogramadoresalahoradeobtenerlasolucindelproblema,darn
lugaraalgoritmosdiferentes,igualmentevlidos.
En esencia, todo problema se puede describir por medio de un algoritmo y las
caractersticasfundamentalesquestosdebencumplirson:
Debeserprecisoeindicarelordenderealizacinpasoapaso.
Debe estar definido, si se ejecuta dos o ms veces, debe obtener el mismo
resultadocadavez.
Debeserfinito,debetenerunnmerofinitodepasos.
Pero cuando los problemas son complejos, es necesario descomponer stos en
subproblemasmssimplesy,asuvez,enotrosmspequeos.Estasestrategiasreciben
elnombredediseodescendenteodiseomodular(topdowndesign).Este sistema se
basaenellemadivideyvencers.
Para representar grficamente los algoritmos que vamos a disear, tenemos a nuestra
disposicindiferentesherramientasqueayudarnadescribirsucomportamientodeuna
formaprecisaygenrica,paraluegopodercodificarlosconellenguajequenosinterese.
Entreotrastenemos:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

4/45

22/10/2015

eXe

Diagramasdeflujo:Estatcnicautilizasmbolosgrficosparalarepresentacindel
algoritmo.Sueleutilizarseenlasfasesdeanlisis.
Pseudocdigo: Esta tcnica se basa en el uso de palabras clave en lenguaje
natural, constantes, variables, otros objetos, instrucciones y estructuras de
programacinqueexpresandeformaescritalasolucindelproblema.Eslatcnica
msutilizadaactualmente.
Tablas de decisin: En una tabla son representadas las posibles condiciones del
problema con sus respectivas acciones. Suele ser una tcnica de apoyo al
pseudocdigocuandoexistensituacionescondicionalescomplejas.

Debesconocer

Acontinuacinteofrecemosdosenlacesmuyinteresantes:
Enelprimervdeopuedesverloselementosgrficosfundamentalesque
seutilizanparalageneracindediagramasdeflujo.
Enelsegundovdeoserealizalaconstruccindeundiagramadeflujo
conunaherramientagrficaysutransformacinapseudocdigo.

Resumentextualalternativo

Resumentextualalternativo

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

5/45

22/10/2015

eXe

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
A los pasos que permiten resolver el problema, escritos en un lenguaje de
programacin,paraquepuedanserejecutadosenelordenadoryasobtener
lasolucin,selesdenomina:.

3.Paradigmasdelaprogramacin.

Casoprctico

AdacomentaconJuanyMaralosdistintosenfoques
paraeldesarrollodeprogramasquehanexistidoalo
largo de la historia de la programacin, destacando
que todos van a tener que renovar su forma de
pensar, si quieren comenzar a utilizar un lenguaje
moderno que les permita construir programas
adaptadosalasnuevasnecesidadesdesusclientes.

Cuntasformasexistendehacerlascosas?Supongoque
estars pensando: varias o incluso, muchas. Pero cuando
se establece un patrn para la creacin de aplicaciones
nos estamos acercando al significado de la palabra
paradigma.

Paradigma de programacin: es un modelo bsico para el diseo y la


implementacindeprogramas.Estemodelodeterminarcomoserelproceso
dediseoylaestructurafinaldelprograma.

El paradigma representa un enfoque particular o filosofa para la construccin de


software.Cadaunotendrsusventajaseinconvenientes,sermsomenosapropiado,
peronoescorrectodecirqueexistaunomejorquelosdems.
Puedes acceder a un resumen de los diferentes paradigmas de programacin en el
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

6/45

22/10/2015

eXe

siguienteenlace:

Resumentextualalternativo

Como habrs podido apreciar, existen mltiples paradigmas, incluso puede haber
lenguajesdeprogramacinquenoseclasifiquennicamentedentrodeunodeellos.Un
lenguajecomoSmalltalkesunlenguajebasadoenelparadigmaorientadoaobjetos.El
lenguaje de programacin Scheme, en cambio, soporta slo programacin funcional.
Python,soportamltiplesparadigmas.

Parasaberms

Te proponemos el siguiente enlace en el que encontrars informacin


adicionalsobrelosdiferentesparadigmasdeprogramacin.
Paradigmasdeprogramacinylenguajes

Cul es el objetivo que se busca con la aplicacin de los diferentes enfoques?


Fundamentalmente, reducir la dificultad para el mantenimiento de las aplicaciones,
mejorarelrendimientodelprogramadory,engeneral,mejorarlaproductividadycalidad
delosprogramas.

Autoevaluacin

En qu paradigma de programacin podramos enmarcar el lenguaje de


programacinJava?

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

7/45

22/10/2015

eXe

ProgramacinEstructurada.
ProgramacinDeclarativa.
ProgramacinOrientadaaObjetos.

4.Fasesdelaprogramacin.

Casoprctico

Juan pregunta a Ada cmo van a realizar todo


elprocesodeproduccin,ydudasielutilizarun
nuevo
lenguaje
supondr
cambiar
drsticamente los mtodos aprendidos en el
pasado.
Ada tranquiliza a Juan y a Mara: Est claro
que las fases principales que hemos estado
llevando a cabo a lo largo de nuestros anteriores proyectos se seguirn
aplicando, aunque con algunas diferencias. Lo ms importante Juan, es que
sigamos adecuadamente el mtodo de trabajo para conseguir buenos
resultados.
Mecostarmuchotrabajoadaptarme?preguntaMara.
Adalecontestasentndoseasulado:NotepreocupesMara,setratade
adaptarconocimientosqueyatienesyaprenderalgunosotros.
Sea cual sea el estilo que escojamos a la hora de automatizar una determinada tarea,
debemos realizar el proceso aplicando un mtodo a nuestro trabajo. Es decir, sabemos
que vamos a dar solucin a un problema, aplicando una filosofa de desarrollo y lo
haremosdandounaseriedepasosquedebenestarbiendefinidos.
Elprocesodecreacindesoftwarepuededividirseendiferentesfases:
Fasederesolucindelproblema.
Fasedeimplementacin.
Fasedeexplotacinymantenimiento.
Acontinuacin,analizaremoscadaunadeellas.

4.1.Resolucindelproblema.
Paraelcomienzodeestafase,esnecesarioqueelproblemaseadefinidoycomprendido
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

8/45

22/10/2015

eXe

claramenteparaquepuedaseranalizadocontododetalle.Asuvez,lafasederesolucin
delproblemapuededividirseendosetapas:
a. Anlisis
Porlogeneral,elanlisisindicarlaespecificacinde
requisitosquesedebencubrir.Loscontactosentreel
analista/programador y el cliente/usuario sern
numerosos,deestaformapodrnserconocidastodas
las necesidades que precisa la aplicacin. Se
especificarnlosprocesosyestructurasdedatosque
sevanaemplear.Lacreacindeprototipossermuy
tilparasaberconmayorexactitudlospuntosatratar.
El anlisis inicial ofrecer una idea general de lo que se solicita, realizando
posteriormente sucesivos refinamientos que servirn para dar respuesta a las
siguientescuestiones:
Culeslainformacinqueofrecerlaresolucindelproblema?
Qudatossonnecesariospararesolverelproblema?
Larespuestaalaprimerapreguntaseidentificaconlosresultadosdeseadosolas
salidas del problema. La respuesta a la segunda pregunta indicar qu datos se
proporcionanolasentradasdelproblema.
En esta fase debemos aprender a analizar la documentacin de la empresa ,
investigar,observartodoloquerodeaelproblemayrecopilarcualquierinformacin
til.

Ejercicioresuelto

Vamosailustrarestafaserealizandoelanlisisdelsiguienteproblema:
Leerelradiodeuncrculoycalculareimprimirsusuperficieycircunferencia.
Estclaroquelasentradasdedatosenesteproblemasereducenalradiodel
crculo,peropiensaqusalidasdedatosofrecerlasolucin?
Lassalidassern...
Variable de salida SUPERFICIE: ser la superficie del crculo. (Te
acuerdas?ElnmeroPiporelradioalcuadrado).
Variable de salida CIRCUNFERENCIA: ser la longitud de la
circunferencia del crculo. (Y de sta? Dos por el nmero Pi y por el
radio)
Ylaentrada...
VariableRADIO:serelradiodelcrculo.
Estas variables RADIO, SUPERFICIE y CIRCUNFERENCIA podrn ser
detiporeal(nmerosconparteenteraypartedecimal,porejemplo:3,57)

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

9/45

22/10/2015

eXe

b. Diseo
Enestaetapaseconviertelaespecificacinrealizadaenlafasedeanlisisenun
diseo ms detallado, indicando el comportamiento o la secuencia lgica de
instruccionescapazderesolverelproblemaplanteado.Estospasossucesivos,que
indicanlasinstrucciones a ejecutar por la mquina, constituyen lo que conocemos
comoalgoritmo.
Consiste en plantear la aplicacin como una nica operacin global, e ir
descomponindolaenoperacionesmssencillas,detalladasyespecficas.Encada
nivel de refinamiento, las operaciones identificadas se asignan a mdulos
separados.
Hay que tener en cuenta que antes de pasar a la implementacin del algoritmo,
hemosdeasegurarnosquetenemosunasolucinadecuada.Paraello,tododiseo
requerir de la realizacin de la prueba o traza del programa. Este proceso
consistir en un seguimiento paso a paso de las instrucciones del algoritmo
utilizando datos concretos. Si la solucin aportada tiene errores, tendremos que
volveralafasedeanlisispararealizar las modificaciones necesarias o tomar un
nuevo camino para la solucin. Slo cuando el algoritmo cumpla los requisitos y
objetivos especificados en la fase de anlisis se pasar a la fase de
implementacin.

4.2.Implementacin.
Sila fase de resolucin del problema requiere un especial
cuidado en la realizacin del anlisis y el posterior diseo
de la solucin, la fase de implementacin cobra tambin
una especial relevancia. Llevar a la realidad nuestro
algoritmo implicar cubrir algunas etapas ms que se
detallanacontinuacin.
a. Codificacinoconstruccin
Esta etapa consiste en transformar o traducir los resultados obtenidos a un
determinadolenguajedeprogramacin.Paracomprobarlacalidadyestabilidadde
laaplicacinsehanderealizarunaseriedepruebasquecompruebenlasfunciones
de cada mdulo (pruebas unitarias), que los mdulos funcionan bien entre ellos
(pruebas de interconexin) y que todos funcionan en conjunto correctamente
(pruebasdeintegracin).
Cuando realizamos la traduccin del algoritmo al lenguaje de programacin
debemos tener en cuenta las reglas gramaticales y la sintaxis de dicho lenguaje.
Obtendremos entonces el cdigo fuente, lo que normalmente conocemos por
programa.
Peroparaquenuestroprogramacomienceafuncionar,antesdebesertraducidoa
unlenguajequelamquinaentienda.Esteprocesodetraduccinpuedehacersede
dosformas,compilandoointerpretandoelcdigodelprograma.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

10/45

22/10/2015

eXe

Compilacin:Esel proceso por el cual se traducen las instrucciones escritas


en un determinado lenguaje de programacin a lenguaje que la mquina es
capazdeinterpretar.
Compilador:programainformticoquerealizalatraduccin.Recibeelcdigo
fuente, realiza un anlisis lexicogrfico, semntico y sintctico, genera un
cdigointermedionooptimizado,optimizadichocdigoyfinalmente,generael
cdigoobjetoparaunaplataformaespecfica.
Intrprete:programainformticocapazdeanalizaryejecutarotrosprogramas,
escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de los
compiladores en que mientras estos traducen un programa desde su
descripcin en un lenguaje de programacin al cdigo de mquina del
sistema, los intrpretes slo realizan la traduccin a medida que sea
necesaria,tpicamente,instruccinporinstruccin,ynormalmentenoguardan
elresultadodedichatraduccin.

Una vez traducido, sea a travs de un proceso de compilacin o de interpretacin, el


programapodrserejecutado.
b. Pruebadeejecucinyvalidacin
Para esta etapa es necesario implantar la aplicacin en el sistema donde va a
funcionar,debeponerseenmarchaycomprobarsisufuncionamientoescorrecto.
Utilizando diferentes datos de prueba se ver si el programa responde a los
requerimientos especificados, si se detectan nuevos errores, si stos son bien
gestionados y si la interfaz es amigable. Se trata de poner a prueba nuestro
programaparaversurespuestaensituacionesdifciles.
Mientras se detecten errores y stos no se subsanen no podremos avanzar a la
siguientefase.Unavezcorregidoelprogramaytesteadosedocumentarmediante:
Documentacin interna: Encabezados, descripciones, declaraciones del
problemaycomentariosqueseincluyendentrodelcdigofuente.
Documentacin externa: Son los manuales que se crean para una mejor
ejecucinyutilizacindelprograma.

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
En la fase de codificacin, hemos de tener en cuenta la del lenguaje para
obtenerelcdigofuenteoprograma.Posteriormente,stedeberseropara
quepuedaserejecutadoposteriormente.

4.3.Explotacin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

11/45

22/10/2015

eXe

Cuandoel programa ya est instalado en el sistema y est


siendo de utilidad para los usuarios, decimos que se
encuentraenfasedeexplotacin.
Peridicamentesernecesariorealizarevaluacionesy,sies
necesario, llevar a cabo modificaciones para que el
programa se adapte o actualice a nuevas necesidades,
pudiendo tambin corregirse errores no detectados
anteriormente. Este proceso recibe el nombre de
mantenimientodelsoftware.
Mantenimiento del software: es el proceso de mejora y optimizacin del
softwaredespusdesuentregaalusuariofinal.Involucracambiosalsoftware
enordendecorregirdefectosydependenciasencontradasdurantesuuso,as
como la adicin de nuevas funcionalidades para mejorar la usabilidad y
aplicabilidaddelsoftware.
Ser imprescindible aadir una documentacin adecuada que facilite al programador la
comprensin,usoymodificacindedichosprogramas.

5.Ciclodevidadelsoftware.

Casoprctico

Mara le pregunta a Juan: Juan, qu ocurre


cuando terminas un programa? Se entrega al
cliente y ya est? La verdad es que los
programas que he hecho han sido para uso
propio y no s cmo termina el proceso con los
clientes.
Contesta Juan: Pues vers, cuando terminas
unprograma,ocreesquelohasterminado,hay
quellevaracabotodaclasedepruebasparaverdndepuedefallar.Despus
mejoras los posibles fallos y posteriormente se entrega al cliente, ah es
donde ves si tu software ha sido bien construido. El cliente lo utilizar y
duranteuntiempopuedeserquehayaquearreglaralgunacosilla.Ycuando
ya est todo correcto, en ocasiones, se establece un contrato de
mantenimientoconelcliente.Comoves,desarrollarsoftwarenoconsisteslo
enprogramaryyaest.

Seancualesseanlasfasesenlasquerealicemoselprocesodedesarrollodesoftware,y
casiindependientementedel,siempresedebeaplicarunmodelodeciclodevida.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

12/45

22/10/2015

eXe

Ciclo de vida del software: es una sucesin de estados o fases por las
cualespasaunsoftwarealolargodesu"vida".
Elprocesodedesarrollopuedeinvolucrarsiemprelassiguientesetapasmnimas:
EspecificacinyAnlisisderequisitos.
Diseo.
Codificacin.
Pruebas.
InstalacinypasoaProduccin.
Mantenimiento.
Existen varios tipos de ciclos de vida del software, a continuacin te mostramos un
resumendelosmsimportantes.

Resumentextualalternativo

Autoevaluacin

Entrelosdistintostiposdeciclodevidadelsoftware,losmodelosincremental
yencascadasonmodelosdeltipoevolutivo.
VerdaderoFalso

6.Lenguajesdeprogramacin.

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

13/45

22/10/2015

eXe

Casoprctico

AdayJuanestnrecordandolocomplejosque
eran algunos lenguajes de programacin, Ada
comenta: Cuando yo empec en esto, haba
relativamentepocoslenguajesdeprogramacin
y no permitan hacer programas como los que
ahoradesarrollamos.
Juan indica que l conoce las caractersticas
generales de algunos lenguajes, pero que le
gustarasaberalgomssobrelosquehubo,hayyhabr.
Mara que asiente con la cabeza, piensa que aprender ms sobre los
lenguajesdisponiblesenlaactualidadpuedeayudaralahoradeelegirentre
unosuotros.

Comohemosvisto,entodoelprocesoderesolucindeunproblemamediantelacreacin
de software, despus del anlisis del problema y del diseo del algoritmo que pueda
resolverlo,esnecesariotraducirsteaunlenguajequeexpreseclaramentecadaunode
lospasosaseguirparasucorrectaejecucin.Estelenguajerecibeelnombredelenguaje
deprogramacin.

Lenguaje de programacin: Conjunto de reglas sintcticas y semnticas,


smbolos y palabras especiales establecidas para la construccin de
programas.Esunlenguajeartificial,unaconstruccinmentaldelserhumano
paraexpresarprogramas.
Gramticadellenguaje:Reglasaplicablesalconjuntodesmbolosypalabras
especiales del lenguaje de programacin para la construccin de sentencias
correctas.
Lxico: Es el conjunto finito de smbolos y palabras especiales, es el
vocabulariodellenguaje.
Sintaxis: Son las posibles combinaciones de los smbolos y palabras
especiales.Estrelacionadaconlaformadelosprogramas.
Semntica:Eselsignificadodecadaconstruccindellenguaje,laaccinque
sellevaracabo.

Hay que tener en cuenta que pueden existir sentencias sintcticamente correctas, pero
semnticamente incorrectas. Por ejemplo, Un avestruz dio un zarpazo a su cuidador
estbienconstruidasintcticamente,peroesevidentequesemnticamenteno.
Unacaractersticarelevantedeloslenguajesdeprogramacines,precisamente,quems
de un programador pueda usar un conjunto comn de instrucciones que sean
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

14/45

22/10/2015

eXe

comprendidasentreellos.Atravsdeesteconjuntosepuede lograr
laconstruccindeunprogramadeformacolaborativa.
Loslenguajesdeprogramacinpuedenserclasificadosenfuncinde
lo cerca que estn del lenguaje humano o del lenguaje de los
computadores. El lenguaje de los computadores son cdigos
binarios, es decir, secuencias de unos y ceros. Detallaremos
seguidamente las caractersticas principales de los lenguajes de
programacin.

6.1.Lenguajemquina.
Este es el lenguaje utilizado directamente por el procesador, consta
deunconjuntodeinstruccionescodificadasenbinario.Eselsistema
de cdigos directamente interpretable por un circuito
microprogramable.
Este fue el primer lenguaje utilizado para la programacin de
computadores.Dehecho,cadamquinatenasupropioconjuntode
instruccionescodificadasencerosyunos.Cuandounalgoritmoest
escrito en este tipo de lenguaje, decimos que est en cdigo
mquina.
Programarenestetipodelenguajepresentabalossiguientesinconvenientes:
Cadaprogramaeravlidosloparauntipodeprocesadoruordenador.
Lalecturaointerpretacindelosprogramaseraextremadamentedifcily,portanto,
insertarmodificacionesresultabamuycostoso.
Losprogramadoresdelapocadebanmemorizarlargascombinacionesdecerosy
unos, que equivalan a las instrucciones disponibles para los diferentes tipos de
procesadores.
Los programadores se encargaban de introducir los cdigos binarios en el
computador,loqueprovocabalargostiemposdepreparacinyposibleserrores.
Acontinuacin,semuestranalgunoscdigosbinariosequivalentesalasoperacionesde
suma,restaymovimientodedatosenlenguajemquina.
Algunas operaciones en lenguaje mquina. Operacin Lenguaje mquina SUMAR
RESTARMOVER
00101101
00010011
00111010
Dadalacomplejidadydificultadesqueofrecaestelenguaje,fuesustituidoporotrosms
sencillosyfcilesutilizar.Noobstante,hayquetenerencuentaquetodoslosprogramas
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

15/45

22/10/2015

eXe

parapoderserejecutados,handetraducirsesiempreallenguajemquinaqueeselnico
queentiendelacomputadora.

Parasaberms

Comorecordatorio,teproponemoselsiguienteenlacesobrecmofuncionael
sistemabinario.

Resumentextualalternativo

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
En el lenguaje mquina de algunos procesadores, la combinacin 00101101
equivalealaoperacinde.

6.2.LenguajeEnsamblador.
Laevolucindellenguajemquinafueellenguajeensamblador.Lasinstruccionesyano
son secuencias binarias, se sustituyen por cdigos de operacin que describen una
operacinelementaldelprocesador.Esunlenguajedebajonivel,aligualqueellenguaje
mquina,yaquedependendirectamentedelhardwaredondesonejecutados.
Mnemotcnico:sonpalabrasespeciales,quesustituyenlargassecuenciasde
cerosyunos,utilizadasparareferirseadiferentesoperacionesdisponiblesen
eljuegodeinstruccionesquesoportacadamquinaenparticular.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

16/45

22/10/2015

eXe

Enensamblador,cadainstruccin(mnemotcnico)secorrespondeaunainstruccindel
procesador.Enlasiguientetablasemuestranalgunosejemplos.
AlgunasoperacionesysumnemotcnicoenlenguajeEnsamblador.OperacinLenguaje
EnsambladorMULTIPLICARDIVIDIRMOVER
MUL
DIV
MOV
Enelsiguientegrficopuedesverpartedeunprogramaescritoenlenguajeensamblador.
En color rojo se ha resaltado el cdigo mquina en hexadecimal, en magenta el cdigo
escrito en ensamblador y en azul, las direcciones de memoria donde se encuentra el
cdigo.

Peroaunqueensambladorfueunintentoporaproximarellenguajedelosprocesadoresal
lenguajehumano,presentabamltiplesdificultades:
Losprogramasseguandependiendodirectamentedelhardwarequelossoportaba.
Los programadores tenan que conocer detalladamente la mquina sobre la que
programaban, ya que deban hacer un uso adecuado de los recursos de dichos
sistemas.
La lectura, interpretacin o modificacin de los programas segua presentando
dificultades.
Todoprogramaescritoenlenguajeensambladornecesitadeunintermediario,querealice
la traduccin de cada una de las instrucciones que componen su cdigo al lenguaje
mquina correspondiente. Este intermediario es el programa ensamblador. El programa
original escrito en lenguaje ensamblador constituye el cdigo fuente y el programa
traducido al lenguaje mquina se conoce como programa objeto que ser directamente
ejecutadoporlacomputadora.

6.3.Lenguajescompilados.
Parapaliarlosproblemasderivadosdelusodellenguajeensambladoryconelobjetivode
acercarlaprogramacinhaciaelusodeunlenguajemscercanoalhumanoquealdel
computador, nacieron los lenguajes compilados. Algunos ejemplos de este tipo de
lenguajesson:Pascal,Fortran,Algol,C,C++,etc.
Al ser lenguajes ms cercanos al humano, tambin se les denomina lenguajes de alto
nivel. Son ms fciles de utilizar y comprender, las instrucciones que forman parte de
estoslenguajesutilizanpalabrasysignosreconociblesporelprogramador.
Culessonsusventajas?
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

17/45

22/10/2015

eXe

Son mucho ms fciles de aprender y de utilizar que sus


predecesores.
Sereduceeltiempoparadesarrollarprogramas,ascomolos
costes.
Son independientes del hardware, los programas pueden
ejecutarseendiferentestiposdemquina.
Lalectura,interpretacinymodificacindelosprogramas es
muchomssencilla.
Pero un programa que est escrito en un lenguaje de alto nivel
tambin tiene que traducirse a un cdigo que pueda utilizar la
mquina. Los programas traductores que pueden realizar esta
operacinsellamancompiladores.

Compilador: Es un programa cuya funcin consiste en traducir el cdigo


fuente de un programa escrito en un lenguaje de alto nivel a lenguaje
mquina. Al proceso de traduccin se le conoce con el nombre de
compilacin.
Parailustrarelprocesodecompilacindeprogramasteproponemoselsiguienteenlace:
Procesodecompilacinenvariasplataformas
Elcompiladorrealizarlatraduccinyademsinformardelosposibleserrores.Unavez
subsanados, se generar el programa traducido a cdigo mquina, conocido como
cdigoobjeto.Esteprogramaannopodrserejecutadohastaquenoseleaadanlos
mdulos de enlace o bibliotecas, durante el proceso de enlazado. Una vez finalizado el
enlazado,seobtieneelcdigoejecutable.

Autoevaluacin

Durante la fase de enlazado, se incluyen en el cdigo fuente determinados


mdulos(bibliotecas)quesonnecesariosparaqueelprogramapuedarealizar
ciertastareas,posteriormenteseobtendrelcdigoejecutable.
VerdaderoFalso

6.4.Lenguajesinterpretados.
Se caracterizan por estar diseados para que su ejecucin se realice a travs de un
intrprete. Cada instruccin escrita en un lenguaje interpretado se analiza, traduce y
ejecuta tras haber sido verificada. Una vez realizado el proceso por el intrprete, la
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

18/45

22/10/2015

eXe

instruccinseejecuta,peronoseguardaenmemoria.
Intrprete:Esunprogramatraductordeunlenguajedealtonivelenelqueel
proceso de traduccin y de ejecucin se llevan a cabo simultneamente, es
decir,lainstruccinsepasaalenguajemquinayseejecutadirectamente.No
segeneraprogramaobjeto,niprogramaejecutable.
Los lenguajes interpretados generan programas de menor
tamao que los generados por un compilador, al no
guardar el programa traducido a cdigo mquina. Pero
presentanelinconvenientedeseralgomslentos,yaque
handesertraducidosdurantesuejecucin.Porotraparte,
necesitan disponer en la mquina del programa intrprete
ejecutndose, algo que no es necesario en el caso de un
programacompilado,paralosquesloesnecesariotener
elprogramaejecutableparapoderutilizarlo.
Ejemplosdelenguajesinterpretadosson:Perl,PHP,Python,JavaScript,etc.
Amediocaminoentreloslenguajescompiladosylosinterpretados,existenloslenguajes
que podemos denominar pseudocompilados o pseudointerpretados, es el caso del
Lenguaje Java. Java puede verse como compilado e interpretado a la vez, ya que su
cdigofuentesecompilaparaobtenerelcdigobinarioenformadebytecodes,queson
estructurasparecidasalasinstruccionesmquina,conlaimportantepropiedaddenoser
dependientesdeningntipodemquina(sedetallarnmsadelante).LaMquinaVirtual
Javaseencargardeinterpretar este cdigo y, para su ejecucin, lo traducir a cdigo
mquinadelprocesadorenparticularsobreelqueseesttrabajando.

Debesconocer

Puedes entender por qu Java es un lenguaje compilado e interpretado a


travsdelsiguienteesquema.
EllenguajeJavaescompiladoeinterpretado.

Autoevaluacin

En Java el cdigo fuente es compilado, obtenindose el cdigo binario en


formadebytecodes.Pero,Culeslaextensindelarchivoresultante?

Extensin.obj.
Extensin.class.
Extensin.Java.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

19/45

22/10/2015

eXe

7.EllenguajedeprogramacinJava.

Casoprctico

Ada indica a Juan y Mara que el lenguaje


elegido para sus desarrollos va a ser Java. La
flexibilidad, facilidad de aprendizaje, similitud
con algunos lenguajes que ya conocen y su
capacidad para adaptarse a cualquier
plataforma, hacen que sea ideal para producir
lasnuevasaplicacionesdeBKProgramacin.

7.1.QuycmoesJava?
Javaesunlenguajesencillodeaprender,conunasintaxisparecidaa
ladeC++,peroenlaquesehaneliminadoelementoscomplicadosy
quepuedenoriginarerrores.Javaesorientadoaobjetos,conloque
elimina muchas preocupaciones al programador y permite la
utilizacin de gran cantidad de bibliotecas ya definidas, evitando
reescribir cdigo que ya existe. Es un lenguaje de programacin
creado para satisfacer nuevas necesidades que los lenguajes
existenteshastaelmomentonoerancapacesdesolventar.
Una de las principales virtudes de Java es su independencia del
hardware, ya que el cdigo que se genera es vlido para cualquier
plataforma. Este cdigo ser ejecutado sobre una mquina virtual
denominadaMaquinaVirtualJava(MVJoJVMJavaVirtualMachine),queinterpretar
el cdigo convirtindolo a cdigo especfico de la plataforma que lo soporta. De este
modoelprogramaseescribeunanicavezypuedehacersefuncionarencualquierlugar.
Lemadellenguaje:Writeonce,runeverywhere.
Antes de que apareciera Java, el lenguaje C era uno de los ms extendidos por su
versatilidad. Pero cuando los programas escritos en C aumentaban de volumen, su
manejocomenzabaacomplicarse.Mediantelastcnicasdeprogramacinestructuraday
programacin modular se conseguan reducir estas complicaciones, pero no era
suficiente.
Fue entonces cuando la Programacin Orientada a Objetos (POO) entra en escena,
aproximando notablemente la construccin de programas al pensamiento humano y
haciendomssencillotodoelproceso. Los problemas se dividen en objetos que tienen
propiedades e interactan con otros objetos, de este modo, el programador puede
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

20/45

22/10/2015

eXe

centrarseencadaobjetoparaprogramarinternamenteloselementosyfuncionesquelo
componen.
LascaractersticasprincipalesdelenguajeJavaseresumenacontinuacin:
ElcdigogeneradoporelcompiladorJavaesindependientedelaarquitectura.
Esttotalmenteorientadoaobjetos.
SusintaxisessimilaraCyC++.
Esdistribuido,preparadoparaaplicacionesTCP/IP.
Disponedeunamplioconjuntodebibliotecas.
Es robusto, realizando comprobaciones del cdigo en tiempo de compilacin y de
ejecucin.
La seguridad est garantizada, ya que las aplicaciones Java no acceden a zonas
delicadasdememoriaodesistema.

Debesconocer

Obtn una descripcin detallada de las caractersticas reseadas


anteriormenteatravsdelsiguienteartculo:
CaractersticasdetalladasdellenguajeJava

7.2.Brevehistoria.
Javasurgi en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de
disearunnuevolenguajedeprogramacindestinadoaprogramarpequeosdispositivos
electrnicos.Ladificultaddeestosdispositivosesquecambiancontinuamenteyparaque
un programa funcione en el siguiente dispositivo aparecido, hay que rescribir el cdigo.
PoresolaempresaSunqueracrearunlenguajeindependientedeldispositivo.
Pero no fue hasta 1995 cuando pas a llamarse Java, dndose a conocer al pblico
como lenguaje de programacin para computadores. Java pasa a ser un lenguaje
totalmenteindependientedelaplataformayalavezpotenteyorientado a objetos. Esa
filosofaysufacilidadparacrearaplicacionespararedesTCP/IPhahechoqueseauno
deloslenguajesmsutilizadosenlaactualidad.
ElfactordeterminanteparasuexpansinfuelaincorporacindeunintrpreteJavaenla
versin2.0delnavegadorWebNetscapeNavigator,loquesupusounagranrevueloen
Internet.Aprincipiosde1997apareciJava1.1queproporcionsustancialesmejorasal
lenguaje.Java1.2,mstarderebautizadocomoJava2,naciafinalesde1998.
ElprincipalobjetivodellenguajeJavaesllegaraserelnexouniversalqueconectealos
usuariosconlainformacin,eststasituadaenelordenadorlocal,enunservidorWeb,
enunabasededatosoencualquierotrolugar.
Para el desarrollo de programas en lenguaje Java es necesario utilizar un entorno de
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

21/45

22/10/2015

eXe

desarrollodenominadoJDK(JavaDevelopmentKit),que provee de un compilador y un


entorno de ejecucin (JRE Java Run Environment) para los bytecodes generados a
partirdelcdigofuente.Aligualquelasdiferentesversionesdellenguajehanincorporado
mejoras,elentornodedesarrolloyejecucintambinhasidomejoradosucesivamente.
Java 2 es la tercera versin del lenguaje, pero es algo ms que un lenguaje de
programacin,incluyelossiguienteselementos:
Unlenguajedeprogramacin:Java.
Unconjuntodebibliotecasestndarquevienenincluidasenlaplataformayqueson
necesariasentodoentornoJava.EselJavaCore.
Un conjunto de herramientas para el desarrollo de programas, como es el
compiladordebytecodes,elgeneradordedocumentacin,undepurador,etc.
Un entorno de ejecucin que en definitiva es una mquina virtual que ejecuta los
programastraducidosabytecodes.
El siguiente esquema muestra los elementos fundamentales de la plataforma de
desarrolloJava2.

ActualmentehaytresedicionesdelaplataformaJava2:
J2SE: Entorno de Sun relacionado con la creacin de aplicaciones y applets en
lenguajeJava.
J2EE:PensadaparalacreacindeaplicacionesJavaempresarialesydelladodel
servidor.
J2ME:PensadaparalacreacindeaplicacionesJavaparadispositivosmviles.

Parasaberms

Si deseas conocer ms sobre los orgenes del lenguaje Java, aqu te


ofrecemosmsinformacin:
LosorgenesdeJava
HistoriadeJava
LneadetiempodelahistoriadeJava

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

22/45

22/10/2015

eXe

7.3.LaPOOyJava.
EnJava,losdatosyelcdigo(funcionesomtodos)secombinanenentidadesllamadas
objetos.Elobjetotendruncomportamiento(sucdigointerno)yunestado(losdatos).
Los objetos permiten la reutilizacin del cdigo y pueden considerarse, en s mismos,
como piezas reutilizables en mltiples proyectos distintos. Esta caracterstica permite
reducireltiempodedesarrollodesoftware.
Por simplificar un poco las cosas, un programa en Java ser como una representacin
teatralenlaquedebemosprepararprimerocadapersonaje,definirsuscaractersticasy
quvaasaberhacer.Cuandoestafaseestterminada,laobrasedesarrollarsacando
personajesaescenayhacindolesinteractuar.
AlemplearlosconceptosdelaProgramacinOrientadaaObjetos(POO),Javaincorpora
las tres caractersticas propias de este paradigma: encapsulacin, herencia y
polimorfismo. Los patrones o tipos de objetos se denominan clases y los objetos que
utilizan estos patrones o pertenecen a dichos tipos, se identifican con el nombre de
instancias. Pero, no hay que alarmarse, estos conceptos se vern ms adelante en
sucesivasunidades.

Otroejemploparaseguiraclarandoideas,piensaenlosbloques
dejuegosdeconstruccin.Suponemosqueconoceslos cubos
de plstico en varios colores y tamaos. Por una de sus caras
disponen de pequeos conectores circulares y en otra de sus
caras pequeos orificios en los que pueden conectarse otros
bloques, con el objetivo principal de permitir construir formas
ms grandes. Si usas diferentes piezas del lego puedes
construir aviones, coches, edificios, etc. Si te fijas bien, cada
piezaesunobjetopequeoquepuedeunirseconotrosobjetos
paracrearobjetosmsgrandes.
Pues bien, aproximadamente as es como funciona la programacin dirigida a objetos:
unimos elementos pequeos para construir otros ms grandes. Nuestros programas
estarn formados por muchos componentes (objetos) independientes y diferentes cada
unoconunafuncindeterminadaennuestrosoftwareyquepodrcomunicarseconlos
demsdeunamanerapredefinida.

7.4.Independenciadelaplataformay
trabajoenred.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

23/45

22/10/2015

eXe

Existen dos caractersticas que distinguen a Java de otros lenguajes, como son la
independenciadelaplataformaylaposibilidaddetrabajarenredo,mejor,laposibilidad
decrearaplicacionesquetrabajanenred.
Estascaractersticaslasvamosaexplicaracontinuacin:
a. Independencia:LosprogramasescritosenJavapuedenserejecutadosencualquier
tipo de hardware. El cdigo fuente es compilado, generndose el cdigo conocido
comoJavaBytecode(instruccionesmquinasimplificadasquesonespecficasdela
plataforma Java), el bytecode ser interpretado y ejecutado en la Mquina Virtual
Java (MVJ o JVM Java Virtual Machine) que es un programa escrito en cdigo
nativodelaplataformadestinoentendibleporelhardware.Conestoseevitatener
querealizarunprogramadiferenteparacadaCPUoplataforma.
Portanto,lapartequerealmenteesdependientedelsistemaeslaMquinaVirtual
Java, as como las libreras o bibliotecas bsicas que permiten acceder
directamentealhardwaredelamquina.
b. Trabajo en red: Esta capacidad del lenguaje ofrece mltiples posibilidades para la
comunicacin va TCP/IP. Para poder hacerlo existen libreras que permiten el
accesoylainteraccinconprotocoloscomohttp,ftp,etc.,facilitandoalprogramador
lastareasdeltratamientodelainformacinatravsderedes.

Autoevaluacin

Qu elemento es imprescindible para que una aplicacin escrita en Java


puedaejecutarseenunordenador?

QuedispongadeconexinaInternetydelhardwareadecuado.
QuetengainstaladounnavegadorwebyconexinaInternet.
QuetengalaMquinaVirtualJavaadecuadainstalada.

7.5.Seguridadysimplicidad.
Junto a las caractersticas diferenciadoras del lenguaje Java relacionadas con la
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

24/45

22/10/2015

eXe

independencia y el trabajo en red, han de destacarse dos


virtudes que hacen a este lenguaje uno de los ms
extendidos entre la comunidad de programadores: su
seguridadysusimplicidad.
a. Seguridad: En primer lugar, los posibles accesos a
zonasdememoriasensiblesqueenotroslenguajes
como C y C++ podan suponer peligros importantes,
sehaneliminadoenJava.
En segundo lugar, el cdigo Java es comprobado y verificado para evitar que
determinadasseccionesdelcdigoproduzcanefectosnodeseados.Lostestquese
aplicangarantizanquelasoperaciones, operandos, conversiones, uso de clases y
demsaccionessonseguras.
Y en tercer lugar, Java no permite la apertura de ficheros en la mquina local,
tampocopermiteejecutarningunaaplicacinnativadeunaplataformaeimpideque
se utilicen otros ordenadores como puente, es decir, nadie puede utilizar nuestra
mquinaparahacerpeticionesorealizaroperacionesconotra.
Endefinitiva,podemosafirmarqueJavaesunlenguajeseguro.
b. Simplicidad:AunqueJavaestanpotentecomoCoC++,esbastantemssencillo.
Posee una curva de aprendizaje muy rpida y, para alguien que comienza a
programar en este lenguaje, le resulta relativamente fcil comenzar a escribir
aplicacionesinteresantes.
SihasprogramadoalgunavezenCoC++encontrarsqueJavateponelascosas
ms fciles, ya que se han eliminado: la aritmtica de punteros, los registros, la
definicin de tipos, la gestin de memoria, etc. Con esta simplificacin se reduce
bastante la posibilidad de cometer errores comunes en los programas. Un
programador experimentado en C o C++ puede cambiar a este lenguaje
rpidamenteyobtenerresultadosenmuypocoespaciodetiempo.
Muy relacionado con la simplicidad que aporta Java est la incorporacin de un
elementomuytilcomoeselRecolectordeBasura(Garbagecollector).Permite al
programador liberarse de la gestin de la memoria y hace que ciertos bloques de
memoria puedan reaprovecharse, disminuyendo el nmero de huecos libres
(fragmentacindememoria).
Cuando realicemos programas, crearemos objetos, haremos que stos
interaccionen, etc. Todas estas operaciones requieren de uso de memoria del
sistema, pero la gestin de sta ser realizada de manera transparente al
programador. Todo lo contrario que ocurra en otros lenguajes. Podremos crear
tantosobjetoscomosolicitemos,peronuncatendremosque destruirlos. El entorno
de Java borrar los objetos cuando determine que no se van a utilizar ms. Este
procesoesconocidocomorecoleccindebasura.

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

25/45

22/10/2015

eXe

EnJavasehasimplificadolagestindememoriaatravsdelaeliminacinde
laAritmticade,porloquelaincorporacindelGarbageCollector evita que
se produzca un crecimiento de los huecos libres en memoria, que recibe el
nombrededememoria.

7.6.JavaylosBytecodes.
UnprogramaescritoenJavanoesdirectamenteejecutable,esnecesarioqueelcdigo
fuenteseainterpretadoporlaMaquinaVirtualJava.Culessonlospasosquesesiguen
desdequesegeneraelcdigofuentehastaqueseejecuta?Acontinuacinsedetallan
cadaunodeellos.

Una vez escrito el cdigo fuente (archivos con extensin .Java), ste es precompilado
generndoseloscdigosdebytes,BytecodesoJavaBytecodes(archivosconextensin
.class) que sern interpretados directamente por la Maquina Virtual Java y traducidos a
cdigonativodelaplataformasobrelaqueseestejecutandoelprograma.

Bytecode:Sonunconjuntodeinstruccionesenlenguajemquinaquenoson
especficas a ningn procesador o sistema de cmputo. Un intrprete de
cdigo de bytes (bytecodes) para una plataforma especfica ser quien los
ejecute. A estos intrpretes tambin se les conoce como Mquinas Virtuales
JavaointrpretesJavadetiempodeejecucin.
En el proceso de precompilacin, existe un verificador de cdigos de bytes que se
asegurardequesecumplenlassiguientescondiciones:
ElcdigosatisfacelasespecificacionesdelaMquinaVirtualJava.
Noexisteamenazacontralaintegridaddelsistema.
Noseproducendesbordamientosdememoria.
Losparmetrosysustipossonadecuados.
Noexistenconversionesdedatosnopermitidas.
Para que un bytecode pueda ser ejecutado en cualquier plataforma, es imprescindible
que dicha plataforma cuente con el intrprete adecuado, es decir, la mquina virtual
especficaparaesa plataforma. En general, la Mquina Virtual Java es un programa de
reducidotamaoygratuitoparatodoslossistemasoperativos.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

26/45

22/10/2015

eXe

8.ProgramasenJava.

Casoprctico

Juan celebra que BK Programacin vaya a


desarrollar sus programas en un lenguaje como
Java. En algunas ocasiones ha asistido a
congresos y ferias de exposiciones de software
en las que ha podido intercambiar impresiones
con compaeros de profesin sobre los
diferentes lenguajes que utilizan en sus
proyectos.Unagranmayoradestacabalofcily
potentequeesprogramarenJava.
Juan est entusiasmado y pregunta: Ada, cundo empezamos? Tienes
cdigo fuente para empezar a ver la sintaxis? Podremos utilizar algn
entornodedesarrolloprofesional?
Ada responde sonriendo: Manos a la obra! Mara, preparada? Vamos a
echarleunvistazoaestefragmentodecdigo...

Hasta ahora, hemos descrito el lenguaje de programacin Java, hemos hecho un


recorrido por su historia y nos hemos instruido sobre su filosofa de trabajo, pero te
preguntars Cundo empezamos a desarrollar programas? Qu elementos forman
parte de un programa en Java? Qu se necesita para programar en este lenguaje?
Podemoscrearprogramasdediferentetipo?
No te impacientes, cada vez estamos ms cerca de comenzar la experiencia con el
lenguaje de programacin Java. Iniciaremos nuestro camino conociendo cuales son los
elementosbsicosdeunprogramaJava,laformaenquedebemosescribirelcdigoylos
tiposdeaplicacionesquepuedencrearseenestelenguaje.

8.1.Estructuradeunprograma.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

27/45

22/10/2015

eXe

Enelgrficoalquepuedesaccederacontinuacin,sepresentalaestructurageneralde
unprogramarealizadoenunlenguajeorientadoaobjetoscomoesJava.

Vamosaanalizarcadaunodeloselementosqueaparecenendichogrfico:
publicclassClase_Principal:Todoslosprogramashandeincluirunaclasecomoesta.Es
unaclasegeneralenlaqueseincluyentodoslosdemselementosdelprograma.Entre
otras cosas, contiene el mtodo o funcin main() que representa al programa principal,
desdeelquesellevaracabolaejecucindelprograma.Estaclasepuedecontenerasu
vezotrasclasesdelusuario,peroslounapuedeserpublic.Elnombredelfichero.Java
quecontieneelcdigofuentedenuestroprograma,coincidirconelnombredelaclase
queestamosdescribiendoenestaslneas.

Recomendacin

TenencuentaqueJavadistingueentremaysculasyminsculas.Siledasa
la clase principal el nombre PrimerPrograma, el archivo .Java tendr como
identificador PrimerPrograma.Java, que es totalmente diferente a
primerprograma.Java. Adems, para Java los elementos PrimerPrograma y
primerprograma seran considerados dos clases diferentes dentro del cdigo
fuente.

public static void main (String[] args): Es el mtodo que representa al programa
principal,enlsepodrnincluirlasinstruccionesqueestimemosoportunasparala
ejecucindelprograma.Desdelsepodrhacerusodelrestodeclasescreadas.
TodoslosprogramasJavatienenunmtodomain.
Comentarios: Los comentarios se suelen incluir en el cdigo fuente para realizar
aclaraciones, anotaciones o cualquier otra indicacin que el programador estime
oportuna. Estos comentarios pueden introducirse de dos formas, con // y con /* */.
Con la primera forma estaramos estableciendo una nica lnea completa de
comentario y, con la segunda, con /* comenzaramos el comentario y ste no
terminarahastaquenoinsertramos*/.
Bloques de cdigo: son conjuntos de instrucciones que se marcan mediante la
apertura y cierre de llaves { }. El cdigo as marcado es considerado interno al
bloque.
Puntoycoma:aunqueenelejemplonohemosincluidoningunalneadecdigoque
termineconpuntoycoma,hayquehacerhincapienquecadalneadecdigoha
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

28/45

22/10/2015

eXe

de terminar con punto y coma (). En caso de no hacerlo, tendremos errores


sintcticos.

Autoevaluacin

publicstaticvoidmain(String[]args)eslaclasegeneraldelprograma.
VerdaderoFalso

8.2.Elentornobsicodedesarrollo
Java.
YaconocescmoeslaestructuradeunprogramaenJava,pero,
qu necesitamos para llevarlo a la prctica? La herramienta
bsica para empezar a desarrollar aplicaciones en Java es el
JDK (Java Development Kit o Kit de Desarrollo Java), que
incluye un compilador y un intrprete para lnea de comandos.
Estosdosprogramassonlosempleadosenlaprecompilacine
interpretacindelcdigo.
Como veremos, existen diferentes entornos para la creacin de
programasenJavaqueincluyenmultituddeherramientas,pero
por ahora nos centraremos en el entorno ms bsico, extendido y gratuito, el Java
DevelopmentKit (JDK). Segn se indica en la propia pgina web de Oracle, JDK es un
entorno de desarrollo para construir aplicaciones, applets y componentes utilizando el
lenguajedeprogramacinJava.Incluyeherramientastilesparaeldesarrolloypruebade
programasescritosenJavayejecutadosenlaPlataformaJava.
Asmismo,juntoaJDKseincluyeunaimplementacindelentornodeejecucinJava,el
JRE(JavaRuntimeEnvironment)paraserutilizadoporelJDK.ElJREincluyelaMquina
VirtualdeJava(MVJJVMJavaVirtualMachine),bibliotecasdeclasesyotrosficheros
quesoportanlaejecucindeprogramasescritosenellenguajedeprogramacinJava.

Debesconocer

ParapoderutilizarJDKyJREesnecesariorealizarladescargaeinstalacin
destos.Puedesseguirlospasosdelprocesoacontinuacin:

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

29/45

22/10/2015

eXe

Resumentextualalternativo

Para poder desarrollar nuestros primeros programas en Java slo necesitaremos un


editordetextoplanoyloselementosqueacabamosdeinstalaratravsdeJavaSE.

Autoevaluacin

PodemosdesarrollarprogramasescritosenJavamedianteuneditordetextos
yatravsdelJREpodremosejecutarlos.
VerdaderoFalso

8.3.LaAPIdeJava.
Juntoconelkitdedesarrolloquehemosdescargadoeinstalado
anteriormente, vienen incluidas gratuitamente todas las
bibliotecasdelaAPI(AplicationProgrammingInterfaceInterfaz
deprogramacindeaplicaciones)deJava,esloqueseconoce
como Bibliotecas de Clases Java. Este conjunto de bibliotecas
proporciona al programador paquetes de clases tiles para la
realizacin de mltiples tareas dentro de un programa. Est
organizada en paquetes lgicos, donde cada paquete contiene
unconjuntodeclasesrelacionadassemnticamente.
Endcadaspasadasunabibliotecaeraunconjuntodeprogramasquecontenancientos
de rutinas (una rutina es un procedimiento o funcin bien verificados, en determinado
lenguajedeprogramacin). Las rutinas de biblioteca manejaban las tareas que todos o
casi todos los programas necesitaban. El programador poda recurrir a esta biblioteca
paradesarrollarprogramasconrapidez.
Unabibliotecadeclasesesunconjuntodeclasesdeprogramacinorientadaaobjetos.
Esas clases contienen mtodos que son tiles para los programadores. En el caso de
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

30/45

22/10/2015

eXe

Java cuando descargamos el JDK obtenemos la biblioteca de clases API. Utilizar las
clasesymtodosdelasAPIsdeJavareduceeltiempodedesarrollodelosprogramas.
Tambin,existendiversasbibliotecasdeclasesdesarrolladasportercerosquecontienen
componentesreutilizablesdesoftware,yestndisponiblesatravsdelaWeb.

Parasaberms

Si quieres acceder a la informacin oficial sobre la API de Java, te


proponemoselsiguienteenlace(estenIngls).
InformacinoficialsobrelaAPIdeJava

Autoevaluacin

IndicaqunoeslaAPIdeJava:

Unentornointegradodedesarrollo.
Unconjuntodebibliotecasdeclases.
UnapartedelJDK,incluidoenelJavaSE.

8.4.Afinandolaconfiguracin.
Para que podamos compilar y ejecutar ficheros Java es
necesario que realicemos unos pequeos ajustes en la
configuracin del sistema. Vamos a indicarle dnde
encontrarlosficherosnecesariospararealizarlaslaboresde
compilacinyejecucin,enestecasoJavac.exeyJava.exe,
as como las libreras contenidas en la API de Java y las
clasesdelusuario.
La variable PATH: Como an no disponemos de un IDE
(IntegratedDevelopmentEnvironmentEntonoIntegradode
Desarrollo)lanicaformadeejecutarprogramasesatravsdelneadecomandos.Pero
slopodremosejecutarprogramasdirectamentesilarutahaciaellosestindicadaenla
variablePATHdelordenador.Esnecesarioqueincluyamoslarutahaciaestosprogramas
en nuestra variable PATH. Esta ruta ser el lugar donde se instal el JDK hasta su
directoriobin.
Paraello,siguelasindicacionesquetemostramosacontinuacin:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

31/45

22/10/2015

eXe

Debesconocer

En la siguiente animacin aprenders como configurar la variable PATH en


Windows.

Resumentextualalternativo

Parasaberms

Si deseas conocer ms sobre la configuracin de variables de entorno en


sistemasWindowsyLinux,teproponemoslossiguientesenlaces:
ConfigurarelPATHenWindows
ConfigurarvariablesdeentornoenUbuntu

La variable CLASSPATH: esta variable de entorno establece dnde buscar las clases o
biblitecas de la API de Java, as como las clases creadas por el usuario. Es decir, los
ficheros .class que se obtienen una vez compilado el cdigo fuente de un programa
escrito en Java. Es posible que en dicha ruta existan directorios y ficheros comprimidos
enlosformatoszipojarquepuedenserutilizadosdirectamenteporelJDK,conteniendo
ensuinteriorarchivosconextensinclass.
(Porejemplo:C:\ProgramFiles\Java\jdk1.6.0_25\bin)
SinoexistelavariableCLASSPATHdebescrearla,paramodificarsucontenidosigueel
mismomtodoquehemosempleadoparalamodificacindelvalordelavariablePATH,
anteriormentedescrito.Tenencuentaquelarutaquedebesincluirserellugardondese
instalelJDKhastasudirectoriolib.
(Porejemplo:C:\ProgramFiles\Java\jdk1.6.0_25\lib)

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

32/45

22/10/2015

eXe

Autoevaluacin

Qu variable de sistema o de entorno debemos configurar correctamente


para que podamos compilar directamente desde la lnea de comandos
nuestrosprogramasescritosenlenguajeJava?

CLASSPATH.
PATH.
Javac.exe.

8.5.Codificacin,compilaciny
ejecucindeaplicaciones.
Una vez que la configuracin del entorno Java est completada y tenemos el cdigo
fuentedenuestroprogramaescritoenunarchivoconextensin.Java,lacompilacinde
aplicacionesserealizamedianteelprogramaJavacincluidoenelsoftwarededesarrollo
deJava.

Parallevaracabolacompilacindesdelalneadecomandos,escribiremos:
Javacarchivo.Java
Donde Javac es el compilador de Java y archivo.Java es nuestro cdigo
fuente.

Elresultadodelacompilacinserunarchivoconelmismo
nombre que el archivo Java pero con la extensin class.
Esto ya es el archivo con el cdigo en forma de bytecode.
Esdecirconelcdigoprecompilado.Sienelcdigo fuente
de nuestro programa figuraran ms de una clase, veremos
comoalrealizarlacompilacinsegenerarntantosarchivos
con extensin .class como clases tengamos. Adems, si
estasclasestenanmtodomainpodremosejecutardichos
archivosporseparadoparaverelfuncionamientodedichasclases.
Paraqueelprogramapuedaserejecutado,siempreycuandoestincluidoensuinterior
elmtodomain,podremosutilizarelinterpreteincluidoenelkitdedesarrollo.

La ejecucin de nuestro programa desde la lnea de comandos podremos


hacerlaescribiendo:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

33/45

22/10/2015

eXe

Javaarchivo.class
Donde Java es el intrprete y archivo.class es el archivo con el cdigo
precompilado.

Ejercicioresuelto

Vamosallevaralaprcticatodoloquehemosestadodetallandoatravsde
lacreacin,compilacinyejecucindeunprogramasencilloescritoenJava.
Observa el cdigo que se muestra ms abajo, seguro que podrs entender
parte de l. Cpialo en un editor de texto, respetando las maysculas y las
minsculas. Puedes guardar el archivo con extensin .Java en la ubicacin
queprefieras.Recuerdaqueelnombredelaclaseprincipal(enelcdigode
ejemplo MiModulo) debe ser exactamente igual al del archivo con extensin
.Java, si tienes esto en cuenta la aplicacin podr ser compilada
correctamenteyejecutada.
/**
*LaclaseMiModuloimplementaunaaplicacinque
*simplementeimprime"MduloprofesionalProgramacin"enpantalla.
*/
classMiModulo{
publicstaticvoidmain(String[]args){
System.out.println("MduloprofesionalProgramacin")//Muestralacadena
decaracteres.
}
}
Accedealalneadecomandosyteclea,enlacarpetadondehasguardadoel
archivoJava,elcomandoparacompilarlo:JavacMiModulo.Java
Elcompiladorgeneraentoncesunficherodecdigodebytes:MiModulo.class.
Sivisualizasahoraelcontenidodelacarpetaversqueenellaestelarchivo
.Java y uno o varios (depende de las clases que contenga el archivo con el
cdigofuente)archivos.class.
Finalmente,pararealizarlaejecucindelprogramadebesutilizarlasiguiente
sentencia:
JavaMiModulo.Java
Si todo ha ido bien, vers escrito en pantalla: Mdulo profesional
Programacin.

8.6.TiposdeaplicacionesenJava.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

34/45

22/10/2015

eXe

La versatilidad del lenguaje de programacin Java permite al


programador crear distintos tipos de aplicaciones. A
continuacin, describiremos las caractersticas ms relevantes
decadaunodeellos:
Aplicacionesdeconsola:
Son programas independientes al igual que los
creadosconloslenguajestradicionales.
Secomponencomomnimodeunarchivo.classque
debecontarnecesariamenteconelmtodomain.
Nonecesitanunnavegadorwebyseejecutancuandoinvocamoselcomando
Java para iniciar la Mquina Virtual de Java (JVM). De no encontrarse el
mtodomainlaaplicacinnopodrejecutarse.
Lasaplicacionesdeconsolaleenyescribenhaciaydesdelaentradaysalida
estndar,sinningunainterfazgrficadeusuario.
Aplicacionesgrficas:
Aquellasqueutilizanlasclasesconcapacidadesgrficas,comoSwingquees
labibliotecaparalainterfazgrficadeusuarioavanzadadelaplataformaJava
SE.
Incluyen las instrucciones import, que indican al compilador de Java que las
clasesdelpaqueteJavax.swingseincluyanenlacompilacin.
Applets:
Son programas incrustados en otras aplicaciones, normalmente una pgina
web que se muestra en un navegador. Cuando el navegador carga una web
quecontieneunapplet,stesedescargaenelnavegadorwebycomienzaa
ejecutarse. Esto nos permite crear programas que cualquier usuario puede
ejecutarcontansolocargarlapginawebensunavegador.
SepuedendescargardeInternetyseobservanenunnavegador.Losapplets
se descargan junto con una pgina HTML desde un servidor web y se
ejecutanenlamquinacliente.
No tienen acceso a partes sensibles (por ejemplo: no pueden escribir
archivos), a menos que uno mismo le d los permisos necesarios en el
sistema.
Notienenunmtodoprincipal.
Sonmultiplataformaypuedenejecutarseencualquiernavegadorquesoporte
Java.
Servlets:
SoncomponentesdelapartedelservidordeJavaEE,encargadosdegenerar
respuestasalaspeticionesrecibidasdelosclientes.
Losservlets, al contrario de los applets, son programas que estn pensados
para trabajar en el lado del servidor y desarrollar aplicaciones Web que
interactenconlosclientes.
Midlets:
SonaplicacionescreadasenJavaparasuejecucinensistemasdepropsito
simpleodispositivosmviles.LosjuegosJavacreadosparatelfonosmviles
sonmidlets.
Son programas creados para dispositivos embebidos (se dedican a una sola
actividad), ms especficamente para la mquina virtual Java MicroEdition
(JavaME).
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

35/45

22/10/2015

eXe

Generalmentesonjuegosyaplicacionesqueseejecutanentelfonosmviles.

Autoevaluacin

UnAppletestotalmenteseguroyaquenopuedeacceder,enningncaso,a
zonassensiblesdel sistema. Es decir, no podra borrar o modificar nuestros
archivos.
VerdaderoFalso

9.EntornosIntegradosdeDesarrollo
(IDE).

Casoprctico

Ada,JuanyMaraestnnavegandoporInternet
buscando informacin sobre herramientas que
les faciliten trabajar en Java. Ada aconseja
utilizar alguno de los entornos de desarrollo
integrado existentes, ya que las posibilidades y
rapidez que ofrecen, aumentaran la calidad y
reduciran el tiempo requerido para desarrollar
susproyectos.
Juan, que est chateando con un miembro de un foro de programadores al
quepertenece,corroboraloqueAdarecomienda.
En los comienzos de Java la utilizacin de la lnea de comandos era algo habitual. El
programador escriba el cdigo fuente empleando un editor de texto bsico,
seguidamente,pasabaautilizaruncompiladoryconlobtenaelcdigocompilado. En
un paso posterior, necesitaba emplear una tercera herramienta para el ensamblado del
programa. Por ltimo, poda probar a travs de la lnea de comandos el archivo
ejecutable. El problema surga cuando se produca algn error, lo que provocaba tener
quevolverainiciarelprocesocompleto.
Estascircunstanciashacanqueeldesarrollodesoftwarenoestuvieraoptimizado.Conel
paso del tiempo, se fueron desarrollando aplicaciones que incluan las herramientas
necesariaspararealizartodoelprocesodeprogramacindeformamssencilla,fiabley
rpida. Para cada lenguaje de programacin existen mltiples entornos de desarrollo,
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

36/45

22/10/2015

eXe

cada uno con sus ventajas e inconvenientes. Dependiendo de las necesidades de la


personaquevaaprogramar,lafacilidaddeusooloagradablequeleresultetrabajarcon
l,seelegirentreunosuotrosentornos.
Para el lenguaje de programacin Java existen mltiples alternativas, siendo los
principales entornos de desarrollo NetBeans (que cuenta con el apoyo de la empresa
Sun), Eclipse y JCreator. Los dos primeros son gratuitos, con soporte de idiomas y
multiplataforma(Windows,Linux,MacOS).
Ycul ser con el que vamos a trabajar? El entorno que hemos seleccionado llevar a
cabo nuestros desarrollos de software en este mdulo profesional ser NetBeans, al
haber sido construido por la misma compaa que cre Java, ser de cdigo abierto y
ofrecer capacidades profesionales. Aunque, no te preocupes, tambin haremos un
recorridoporotrosentornosdestacables.

9.1.Quson?
Son aplicaciones que ofrecen la posibilidad de llevar a cabo el
proceso completo de desarrollo de software a travs de un nico
programa. Podremos realizar las labores de edicin, compilacin,
depuracin, deteccin de errores, correccin y ejecucin de
programas escritos en Java o en otros lenguajes de programacin,
bajounentornogrfico(nomediantelneadecomandos).Juntoalas
capacidades descritas, cada entorno aade otras que ayudan a
realizarelprocesodeprogramacin,comoporejemplo:cdigofuente
coloreado,plantillasparadiferentestiposdeaplicaciones,creacindeproyectos,etc.
Hayquetenerencuentaqueunentornodedesarrollonoesmsqueunafachadaparael
procesodecompilacinyejecucindeunprograma.Ququieredecireso?Puesquesi
tenemosinstaladounIDEynotenemosinstaladoelcompilador,notenemosnada.

Parasaberms

Si deseas conocer algo ms sobre lo que son los Entornos Integrados de


Desarrollo(IDE)accedealasdefinicionesqueteproponemosacontinuacin:
DefinicindeEntornoIntegradodeDesarrollo
DefinicindeEntornoIntegradodeDesarrolloenWikipedia

9.2.IDE'sactuales.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

37/45

22/10/2015

eXe

ExistenenelmercadomultituddeentornosdedesarrolloparaellenguajeJava,loshay
delibredistribucin,depago,paraprincipiantes,paraprofesionales,queconsumenms
recursos,quesonmsligeros,msamigables,mscomplejosqueotros,etc.
Entrelosquesongratuitosodelibredistribucintenemos:
NetBeans
Eclipse
BlueJ
Jgrasp
JcreatorLE
Entrelosquesonpropietariosodepagotenemos:
IntelliJIDEA
Jbuilder
Jcreator
JDeveloper

Debesconocer

Cada uno de los entornos nombrados ms arriba posee caractersticas que


los hacen diferentes unos de otros, pero para tener una idea general de la
versatilidad y potencia de cada uno de ellos, accede a la siguiente tabla
comparativa:
ComparativaentornosparaJava

Pero,culoculessonlosmsutilizadosporlacomunidadde
programadores Java? El puesto de honor se lo disputan entre
Eclipse, IntelliJ IDEA y NetBeans. En los siguientes epgrafes
haremos una descripcin de NetBeans y Eclipse, para
posteriormente desarrollar los puntos claves del entorno
NetBeans.

Parasaberms

Si quieres conocer la situacin actual de uso y comparar los diferentes


entornos integrados de desarrollo para el lenguaje de programacin Java,
puedesampliardatosenelsiguienteartculo:
ArtculoconcomparativasobreutilizacindeentornosJava.(Eningls)
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

38/45

22/10/2015

eXe

ParaaccederaloslugaresdeInternetdondeobtenerlosdiferentesentornos
integrados de desarrollo, puedes utilizar la lista que te ofrecemos en este
enlace:
ListadoconaccesoalaswebsdelosdiferentesentornosJava

Autoevaluacin

Cul de los siguientes entornos slo est soportado en la plataforma


Windows?

Eclipse.
IntellijIDEA.
Jcreator.

9.3.ElentornoNetBeans.
Comosehaindicadoanteriormente,elentornodedesarrolloquevamos
a utilizar a lo largo de los contenidos del mdulo profesional ser
NetBeans. Por lo que vamos primero a analizar sus caractersticas y
destacarlasventajasquepuedeaportarsuutilizacin.
Se trata de un entorno de desarrollo orientado principalmente al lenguaje Java, aunque
puede servir para otros lenguajes de programacin. Es un producto libre y gratuito sin
restriccionesdeuso.Esunproyectodecdigoabiertodegranxito,conunacomunidad
deusuariosnumerosa,encontinuocrecimientoyapoyadoporvariasempresas.
Elorigendeesteentornohayquebuscarloenunproyectorealizadoporestudiantesdela
RepblicaCheca.FueelprimerIDEcreadoenlenguajeJava.Untiempomstarde,se
form una compaa que sera comprada en 1999 por Sun Microsystems (quien haba
creado el lenguaje Java). Poco despus, Sun decidi que el producto sera libre y de
cdigo abierto y naci Netbeans como IDE de cdigo abierto para crear aplicaciones
Java.
NetBeans lleva tiempo pugnando con Eclipse por convertirse en la plataforma ms
importante para crear aplicaciones en Java. Hoy en da es un producto en el que
participan decenas de empresas con Sun a la cabeza. Sigue siendo software libre y
ofrecelassiguientesposibilidades:
EscribircdigoenC,C++,Ruby,Groovy,Javascript,CSSyPHPademsdeJava.
PermitircrearaplicacionesJ2EEgraciasaqueincorporaservidoresdeaplicaciones
Java(actualmenteGlassfishyTomcat)
CrearaplicacionesSwingdeformasencilla,alestilodelVisualStudiodeMicrosoft.
CrearaplicacionesJMEparadispositivosmviles.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

39/45

22/10/2015

eXe

Laltimaversinlanzadaen2011eslaNetBeans7.0.
LaplataformaNetBeanspermitequelasaplicacionessean
desarrolladas a partir de un conjunto de componentes de
softwarellamadosmdulos.UnmduloesunarchivoJava
que contiene clases de Java escritas para interactuar con las APIs de NetBeans y un
archivoespecial(manifestfile)queloidentificacomomdulo.
Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole
nuevos mdulos. Debido a que los mdulos pueden ser desarrollados
independientemente,lasaplicacionesbasadasenestaplataformapuedenserextendidas
fcilmenteporcualquieraquedesarrolletambinsoftware.
Cadamduloproveeunafuncinbiendefinida,talescomoelsoportedeJava,edicin,o
soporte para el sistema de control de versiones. NetBeans contiene todos los mdulos
necesariosparaeldesarrollodeaplicacionesJavaenunasoladescarga,permitiendoala
personaquevaarealizarelprogramacomenzaratrabajarinmediatamente.

Parasaberms

Encuentra ms informacin sobre esta plataforma en los enlaces que te


proponemosacontinuacin:
InformacinoficialsobreNetBeans
VersionesdelentornoNetBeans

9.4.Instalacinyconfiguracin.
Para realizar la instalacin del entorno NetBeans, seguiremos los
siguientespasosbsicos:
1. Descargadelaversindeseadadesdelaweboficialodesde
los enlaces propuestos ms abajo. La versin completa
contiene todas las posibilidades aunque es la ms pesada
(unos240MegaBytes).Ennuestrocaso,porestarenfasede
iniciacin, podra ser suficiente descargar la versin ms
bsica(unos60MegaBytes).
2. Seleccionar la plataforma o sistema operativo, existen
versionesparaWindows,LinuxyMacOS.TantoenWindows
como en Linux, se descarga un archivo ejecutable que se
encargadelainstalacin.
3. Seleccionarelidioma.
4. Comenzar la descarga del archivo de instalacin ejecutable y una vez finalizada,
lanzarste,comenzandolainstalacinennuestroequipo.
5. En las primeras pantallas, seleccionaremos los componentes a instalar. Como
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

40/45

22/10/2015

eXe

mnimo,parapoderprogramarenJavaserimprescindibleinstalarelIDEbsicoy
JavaSE.
6. Posteriormente,establecemoseldirectoriodondeseinstalarNetBeans, as como
lacarpetaquecontieneelJDKqueseutilizarpordefecto.
7. Finalmente, la instalacin se completa y dispondremos de este entorno totalmente
operativo.
Parallevaracabolasoperacionesdescritasenelpaso1,teofrecemoslaposibilidadde
descargar cada una de las partes por separado, o bien, en conjunto, a travs de los
siguientesenlaces:
DescarganicamenteNetBeanssitienesyainstaladoelJDK.(Estaversinanno
incluyelenguajeEspaol)
DescargasloNetBeansenEspaol,sinJDK
DescargaNetBeansyJDKdesdelapginaoficialdeORACLE

Debesconocer

Paraaprendercmorealizarlainstalacincompleta,JDKyNetBeans,ensus
ltimas versiones es importante que sigas las indicaciones que se muestran
enelsiguienteartculo:
GuaparalainstalacindetalladadelJDKyNetBeansensuversincompleta

Parasaberms

Sieresdelosquelegustalaaccin,msqueleerlostutoriales,enestevdeo
podrs seguir el proceso de descarga e instalacin de NetBeans bajo las
plataformasWindowsyLinux.

Resumentextualalternativo

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

41/45

22/10/2015

eXe

9.5.Aspectodelentornoygestinde
proyectos.
La pantalla inicial de nuestro entorno de desarrollo ofrece accesos directos a las
operaciones ms usuales: aprendizaje inicial, tutoriales, ejemplos, demos, los ltimos
programasrealizadosylasnovedadesdelaversin.
Paracomenzaradescribirelaspectodelentorno,esnecesariocrearunnuevoproyecto
accediendo al men File New Project, indicaremos el tipo de aplicacin que vamos a
crear.

Debesconocer

Para continuar con la creacin de nuestro proyecto y la descripcin del


aspectodelentorno,accedealasiguientepresentacin:

Resumentextualalternativo

Cuando trabajemos con NetBeans, nuestros proyectos harn uso de clases


para poder desarrollar las operaciones de nuestros programas. Estas clases
se agruparn en paquetes y en la siguiente presentacin puedes aprender
cmosegestionanatravsdelentorno:

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

42/45

22/10/2015

eXe

Resumentextualalternativo

Una de las ventajas que ofrece este entorno es poder examinar nuestros proyectos a
travs de la vista Archivos. Esta vista nos ensea la realidad de los archivos del
proyecto, la carpeta build contiene los archivos compilados (.class), la carpeta src el
cdigo fuente y el resto, son archivos creados por Netbeans para comprobar la
configuracin del proyecto o los archivos necesarios para la correcta interpretacin del
cdigoenotrossistemas(encualquiercasonohayqueborrarlos).Paraactivarestavista,
seleccionaenelmenprincipalWindowsFiles.

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
EnNetBeans,losarchivos.classdeunproyectoestnalojadosenlacarpeta
ylos.Javaenlacarpeta.

Anexo.Licenciasderecursos.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

43/45

22/10/2015

eXe

LicenciasderecursosutilizadosenlaUnidaddeTrabajo.Recurso(1)Datosdelrecurso
(1)Recurso(2)Datosdelrecurso(2)

Autora:RdigerWlk
Licencia:CCBYSA
Procedencia:
http://commons.wikimedia.org/wiki/File:Wiener_Melange_0363wien_img_9

Autora:barraquitofromSantaCruzdeTenerife,CanaryIslands,Spain
Licencia:CCbysa
Procedencia:http://commons.wikimedia.org/wiki/File:Cruce_de_caminos
El_Hierro.jpg

Autora:Desconocido.
Licencia:DominioPblico.
Procedencia:http://commons.wikimedia.org/wiki/File:OstrichHead.JPG

Autora:German,usuarioespaoldeWikipedia
Licencia:Dominiopblico
Procedencia:http://commons.wikimedia.org/wiki/File:Codigo_de_maquina.

Autora:Robpatrik
Licencia:CCBYNCSA
Procedencia:http://www.flickr.com/photos/alkalinezoo/3595562784/

Autora:ZikovanDijk
Licencia:CCbysa
Procedencia:http://commons.wikimedia.org/wiki/File:20101114_orr_ob_0

Autora:SasaStefanovic
Licencia:GNU/GPL
Procedencia:http://commons.wikimedia.org/wiki/File:Exquisitekcontrol.png

Autora:netbeans.org
Licencia:Copyright(cita),seautorizaelusosinrestricciones.
Procedencia:http://netbeans.org

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

44/45

22/10/2015

eXe

Autora:NevitDilmen
Licencia:GNUFreeDocumentationLicense.
Procedencia:http://commons.wikimedia.org/wiki/File:Maldives_00147.JPG

https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776

45/45

Vous aimerez peut-être aussi