32
'L Introducción a las computadoras y a java

Introducción

Embed Size (px)

DESCRIPTION

Introducción a Java

Citation preview

  • 'L

    Introduccin a las computadoras y a java

  • HL Iangeneral/P

    Captulo I Introduccin a las computadoras y a java

    |ntmd,_,- I.9 Java y un tpico entorno de desarrolloI .2 Computadoras: hardware y software en Java|.3 jerarqua de datos|.4I.5 Lenguajes mquina. lenguajes ensambladores

    |.I0 Prueba de una aplicacin en Java|.| I Web 2.0: Las redes socialesI.I2 Tecnologas de software

    y gnguajes de am, nv| I.I 3 Cmo estar al da con las tecnologiasde informacin

    I.I4 Conclusin

    Organizacin de una computadora

    |.6 introduccin a la tecnologa de los objetosI.7 Sistemas operativosL8 lenguajes de programacin

    IntroduccinBienvenido a java: el lenguaje de programacin de computadoras ms utilizado en el mundo. Usted yaesta familiarizado con las poderosas tareas que realizan las computadoras. Mediante este libro de texto,usted escribir instrucciones para ordenar alas computadoras que ralicen esos tipos de tareas. El sqware(las instrucciones que usted escribe) controla el hardware (hs computadoras).

    Aprender sobre la pro_g'ramact`dn orierrrada a orron la metodologa de programacin clave de laactualidad. En este texto crear y trabajar con muchos desqware.

    Iava el lenguaje preferido parasatisfaoer las necesidades de programacin empresariales de muchasorganizacions. Tambien se ha convertido en el lenguaje de eleccin para implementar aplicaciones ba-sadas en Internet y software paradisposi tivos que se comunican a travs de una red.

    Hoy en da hay en uso ms de mil millones de computadoras de propsito general, adems de milesde millones de telfonos celulares, telfonos inteligentes (smartphones) y dispositivos porttiles (comolas computadoras tipo tableta) habilitados parajava. De acuerdo con un estudio realizado poreMarlteter,el nmero de usuarios mvils de Internet llegar acerca de 134 millones para 2013.' Otros studies hanproyectado ventas de telefonos inteligentes que sobrepasa a las ventas de computadoras personales en201 12 y ventas de tabletas que representarn cerca del 20% de todas las ventas de computadoras persona-las para 2015.3 Para20l4, se esperaqueel mercado de las aplicaciones de telemos inteligente exceda los$40 mil rnillones,' lo cual generar oportunidades importantes para la programacin de aplicacionesmviles.

    Ediciorus deam' SE, EE] .MEjava ha evolucionado con tanta rapidez que esta novena edicin de Cmo programar en java -basadaen ava Standard Edition 6 (java SE 6') con mdulos opcionales sobre las nuevas caracteristicas dejavaSE 7 -se public slo 15 aos dsputfs de la primera edicin. java se utiliza en un espectro tan ampliode aplicaciones. que cuenta con otras dos ediciones. java Enterprise Edition (java EE) est orientadahacia el desarrollo de aplimcions de red distribuidas, de gran mmla, y aplicaciones basadada en Web.

    nkkiix-I

    wm . ci rc 'I el d. con/posts /nobi1e__1n ter'net_users_to_rea|:I'i_l34_Ilil1'lon by__ZOl3 / .una _ pene r1d . con/a rt-I c e/171 380/more sua rtphones_than_desktop_pc s_by_201_'l . ho _wm .forrester _ con/ER/Press/Relea se/O, 1169 . 134-0 .O0. ht||`I .Inc. tciembrede 20l0ener0 de 2011, ll6-l23.

  • |.| Introduccin 3

    En el pasado, h mayoria de hs aplicaciones de computadora se ejecutaban en computadoras indepen-dientes (que no estaban conectadas en red). En la actualidad, las aplicaciones se pueden acribir conmiras a comunicarse entre computadoras en todo el mundo por medio de Internet y Web. Ms adelanteen ste libro hablaremos sobre cmo crmr dichas aplicaciones basadas en Web con java.

    java Micro Eiition (Java ME) est orientada hacia el desarrollo de aplicaciones para pequeosCllspositivns con memoria restringida, como los telfonos inteligenta Blltcrty. El sstcrna opetalvoAndroid de Google -que se utiliza en muchos telefonos inteligentes, tabletas (pequeas computadorasgotas y mviles con pantallas tctilm), lectora electrnicos y otros dispositivos- utilim una versinpersonalizada de javaque no se basa en java ME.

    crgrrtacidrrerr la indurtkybt irrtritigcrrms son tiempos emocionante en el campo de la computacin. Muchas de hsempresas ms influyen-

    nes y exitosas de las ltimas dos dcadas son compaias de tecnologa, como Apple, IBM, HewlettPacltard. Dell, Intel, Motorola, Cisco, Microsoft, Google,Ama:r.on, Faoeboolt,Twitter, Groupon, Fours-quare, Yal1oo!,eBay y muchas ms; queson rentes de empleo importantes para hs personas que estudianciencias computacionales, sistemas de informacin o disciplinas relacionadas. Al momento de escribirste libro, Apple era la segunda compaa ms valiosa del mundo, ctm la tecnologa ms preciada.,las computadoras tambin se utilizan mucho en kt investigacin acadmica e industrial. La gura 1.1provee unos cuantos ejemplos de las increbles formas en que se utilizan las computadoras, tanto enla invstigacin como en la industria.

    Internet Internet --una red global de oompumdoms- se laico posible gradas: lamuwrfrmiade lamnrprrzaddrry lrttmrnrrrrnerriorres. Time sus races enIadordade I960;supauodnioestuvoatargodel Depor-rarnerrtodeDefmsade EstadosUrtidoc Diseadaen un prineipiopammnecrarlossiswnas decmputo principales de alrededor de una docena deuniveraidades yorgnizmcionm de investigation, en la actualidad son miles dernillona de compu-tadoras y oontrolzlos por oomputadomen todo el mundo los queutilizan Internet. Las computadoras deroompotren las extensas oansmisionesun pequena en el extrano emisor, mvan lospaquetes a losreoeptiormdestinadosyaseguran quesereoibanen secuenciaysin erroresenel extremoreceptor. Dcacuerdo con un estudio de Forresser Research, el consumidorestadounidense promedio invierteen la actualidad la misma cantidad detiempo en lnm que el queprrsa en la televisin (forrester _ r:oq/rb/les earth/onde rsta nd1ng_cl\anq^l ng_needs_of_us_on1'ltre_covrsuuer/g/'ld/57351/I/2).

    Proyecto ElProyeceoGenomaHumanosefundpomidentifrcnryana1izarlosmsGenoma de 20,000 genes en elADN humano. El proyecto utiliz programas deI-lurnarro computadora panrarralizar datos genticos complejos. dener-mirrarlaa

    seurerrciasde los miles de rnillona de poresde bases qumims que componenelADN humano yalmaoerrarla ini-'or-rrradrr en bares de datosque se banpuesto a diqaosidn de loa itwutigadorea en muchos mmpos. Esta investi-cin ha ocasionado una tr-erneoda innovacin yerecirnieneo err la industriade la biotecnologa.

    I-ig. I.I I Unos cuantos usos para las computadoras (parte I de 3).

    S un _ zdnet . con/b'Iog/aap e/app e-becomes-wo r-1 ds- second-nost-vai uab1e-corrpany/9047.

  • Captulo I Introduccin a las computadoras y a Java

    Red dela Comunidad La Red dela Comunidad Mundial (uurr.nor'Idoomun~I tyqr-Id.o1-g) es unaMundial tedde oomputadn sin fines de luan. las personas decodo el mundo donan

    el poderde procsamientode cmputo que no utilicen. mediante lainstalacin deun programa desoftwareseguro gratuito que paminea laRcdde la Comunidad Mundial aproveclrareae poder sobranteorando lascomputadoraseenfm Elpoderdecmpumseuriliu en lugar delassuperoomputadoras para rmlimr proyectos de invsticin cientficos queestn haciendo la diferencia. entre ellos: el demnollo de energia snlara unprecio asequible, el strministro deagua potableal mundo en dmrtollo, lalucltaconnaelcncer. la ctuadeladistroa muscular, el hallazgodemedimmentos antivinrles contra la influenza, el cultivo de arroz msnutritivo para las regiones que combaten la hambruna y otros ms.

    Imgenes para Lasertplonrcionet por tomografa computarizada (CF) con rayosX. tambindiagnstico mdico cnnoddas tnmo CAT (tornograa axial computarizada). toman rayosX del

    cuerpo desde cientos deirrgulos Se utilizan computadoras paraajusearlainnensidaddel rayo X,con locualse optimiaalaotploracin paracada tipo detejido, para dupuoombinartodala infonnadnycrerrunaimagen tridirnenaional (5D).

    GPS Los dispositivos con Sistema de posicionarniento global (GPS) utilizan unaredde satines para obtener inliormacin con baseen la ubicacin. Variossatitea mvan sdales con etiquetas de tiempo al dispotivo GPS, el cualcalorlaladirtaocia haciatardasaelineoonbaseenlairoraenquelaseallidel satice yse recibi. La ubimcin decada satlite yla disomcia hacia adaunode ellosseutilizan para deterrninarla ubitadneaaaa delSegn la ubicacin en la queusted seencuentte, los dispositivos GPS puedenproveer indicadouer paso a poso, ayudarle a enoontraroon facilidad negocioscertanos (rmtaumntes, psolineras, etctera) ypuntos de inters, o ayuthrle aencontrara sus amigos.

    SYNCQ de Microsoft Ahora muclros autos Ford cuentan con la tecnologia SYNC de Microsoft, lacual provee tapacidadesde reconocimiento yaioeesis de vo: (para leerrrreruajeadecmma que lepermicen usaroomandosdevozparaexplorar msica, aolicitaralerms de cnfteo youaa oasas nula.

    AMBE-R'Alert ElSiseernadea1ertaA.MBER(DesaparecidosmAmerit:a:$iscunade'Iiansmisin de Respuesta a Emergencias) se utiliaa para buscar niossecuestrados. Lasautoridades notitarn tanto a lasdirsotas dc TV y radiocomo a los rncionatios de carreteras estatales, quienes a su vea. transmitenalermr en TV, radio, seales oompumrimdas en lascarreuenas, Internet ylosdispositivos inalmbricos. AMBERAlert se asoci recientemente conFacebook. Cuyo: usuarios pueden bacerclicen 'Lille' (Mc g|.Isnr"} en hspginas deA.MBERAler-tsegn la ubicacin, para recibiraler-ursen sustransmisiones de noticias.

    Robots Losrobotsson mqtritrasoomputariaadasque puedenrm1ir.artarma(oomotrabaossioou], responderalosestfnnrlnsyotraroomasepuedenutiliaarpara tareasdiarias (porejemplo. inspiradora Rootnbade illobot), deenneeeni-tniento (como la mascotas robdtim), combate militar, explotacin yenlapromdidsrddeloceano. manufactunyotrasm.En20lM.elootarnun-.1smardanndelaNASAamnnolrumm-qtreulimbammdogajava-enlord hsuper-deparrrqrrender-sobrelalrisnoriadelaguaenelplar-reta.

    Fig. l.I | Llnostuantos usos para las computadoras [parte 2 de 3).

  • |.2 Computadoras: hardware y software 3

    Nombre DescripcinUm laptop por nio Une Laptop Por Nio (OLPC) ofrece lapoops eoonrniois, habilitadas para(OLPC) Innemer yde bajo oonsumo de energia para los nios pobres en nodo el

    mundo; gracias s ello fomennn el aprendizsjey reduoen la separacin digital(one.1aptop.or-9]. Al pmveeresmos recursos educativos, OLPC aumenta lasoportunidades de que los nios pobrsaprendan y hagan la diferencia en mscomunidades.

    Programacin El negocio de los juegos de computadora es ms grande que el de lasdejuegos pelculas de estreno. El denn-ollo de los videojuegos ms sofisticados puede

    costar-lnsm $100 millones. El juego Call'oDu:_y2: Modem WsrredeActivision, lanzarlo al pblico en noviembre de 2009, obtuvo $310 millonesen slo un da en Norteamrica yel Reino Unido (news .cnet.eon/8301-13772_3-103965 93- 52 _ MJI1 'tag-|Inco'I ;trt)l Losjuqursoeialfrerr linea,que perrniuen a usueriosde nodo elmundo eornpetir-entre s. esuin crecien-do con rapidez. Zyup-creadordc juegos en lina populares. comolio-mslkyea Werr- se fund en 2007 yyacuenta con msde 215millones de usuarios mensuales. Pam dsrcsbids al aumento en el trfico,Zy-ug: ag:-ep casi 1,000 servidores porseuuna [tec hcru nch.oonI/2010/O9/22/2yr9a-Uoves-1- pet byte-of-dete-dei 'ly-adds-1000-servers-a -creek/)! 1.-as consolasde videojuegos tambin se eseinvolviendo cada vez ms sofuticadss. El conuol remoto del Wii utilizo uncekrmnr (pu: deteclarla inclinacin y la aoeleracin] junto con unsensorque determina lucia donde apunta el dispositivo, lo cual le permiteresponderal rnovimienrao. Al hacer adernaues con el control nemono del Wiien ls mano, usted puede controlar el videojuego eu la pantalla. Con Kne-ctpam el Xbox 360de Microsoft, usned -eljupdor- se conviene en elcontrolador. Kinect utiliza una cmara, uu sensor de profundidad ysoftwaresofisticado parseguir el movimiento de su cuerpo, lo cual le permitecontrolar el juego (en. ullvl pod*la.org/n'lk'I /X1 nect). (bn los juegos deKinecr puede bailar, hacer ejercicio. joy: deportes. entrenar animalesvirtuales yvarias actividades ms.

    Tvpor Internet l-0sreoeptoresdcTVpor Internet (oomoAppleTVyGoogleTV)ledanacceso a diversos tipos deoonrenido -como juegos, noticias. pelculas.progumasdenelevsinyms-, oou locual usnedpuede aooedaunagmucantidad de contenido lnio dunsnds; ya no necesita dqsender de lospeovoedoresde televisin por mble o via satline pan recibir contenido.

    Fig. I.I | Unoscuantos usos para las computadoras [parte 3 de 3).

    Computadoras: hardware y softwareUnaoompuradora es un dispositivo mpaz de realizar clculos y tornardecisiones lgicas con una rapidaincreblemente mayor que los humanos. Muchas de hs computadoras personales contemporneas pue-den realizar rnilm de milions declculos en un segundo --ms de lo que un humano podra realizar ennda su vida. Las mp:-rmmputdomc ya pueden realizar miier de billoms de nsn-uoeiona por segundo!Dicho de otra Forma, una oomputadora de mil billones de instmociou-es por segundo puede realizar enun segundo ms de 100,000 clculospara cada una de or rabitanter delphneml Y estos lmi tes superio-res stn aumentando oon rapidez!

  • Lo'

    l.3

    Captulo I Introduccin a las computadoras y a java

    Las computadoras procesan datos bajo el control de conjuntos de instrucciones conocidas como11-ogramaa de computadora. Los cuales guan a ki computadora a travs de conjuntos ordenados deacciones especificadas por gente conocida oomo programadores de computadoras. A los programasque se ejecutan en una computadora se la denomina software. En ste libro aprender la metodologade programacin clave de la actualidad que mejora la productividad del programador, con lo cual sereducen lcs costos de desarrollo del software: programacin orimrada la objetos.

    Una computadora consiste en varios dispositivos conocidos como lnrdwate (teclado, pantalla, ra-tn, dkcos duros, memoria, unidades de DVD y unidades de procesamiento). los costos de las compu-tadoras Inn diirnrnuido en forma especmcuhr, debido a los rapidos desarrollos en las tecnologias dehardware y software. Las computadoras que ocupaban grandes habitaciones y que costaban millonesdedlares hacealgunasclcadas, ahora pueden colocarse en las superficies de chipsdesilicio ms pequeosque ima ua, y con tm costo de quiz unos cuantos dlaiu cada uno. Aunque suene irnico, el silicioes uno de los materiales ms abundantes en el planeta (es uno de los ingredientes de El arena comn).la tecnologa de los chips de silicio ha vuelto tan econmica a la tecnologa de la computacin que hayms de mil millones de computadoras de uso general Funcionando a nivel mundial, y se espera que estacifra se dupliqueen los prximos aos.

    los chips de computadora (microproreradorrr) controlan innumerables dispositivos. Entre estosliltelnl incrustados tstn: frenos antibloqueo cn los autos, sistemas de navegacin, electrodomsticosinteligentes, sistemas de seguridad en el hogar, telfonos celulares y telfonos inteligentes, robots, inter-secciones de trfico inteligentes (collision avoidance systems), controles de videojuegos y mas. La granmayora de los microprocesadores que se producen cada ao estan incrustados en dispositivos que noson computadoras de propsito generalf

    de MooreEs probable que cada ao, espere pagar por lo menos un poco ms por la mayora de los productos yservicios. En el caso de los campos de las computadoras y las comunicaciones se ha dado lo opumto, enspecial con relacin a los costos del hardware que da soporte a estas tecnologas. Los costos del hardwarehan disminuido con rapidez. durante varias dcadas. Cada uno o dos aos, las capacidads de las compu-tadoras se dsrplirarr aproximadamentesin que el precio se incremente. Esta notable observacin secono-ceen el ambito comn como la Leyde Moore, y debe su nombre ala persona que identific sta tenden-cia: Gordon Moore, corndador de Intel, uno de los principales fabricantes de procesadores para lascomputadoras y los sistemas incrustados de laactualidad. la Ley de Moore y hs observacons relaciona-das son especialmente ciertas en cuanto a la cantidad de memoria que tienen las computadoras para losprogramas, la cantidad de almacenamiento secundario (corno el almacenamiento en disco) que tienenpara guardar los programas y datos durante periodos extendidos de tiempo, y las velocidades de sus pro-msadorm: hs velocidades con que las computadoras ejecutan sus programas (realizan su trabajo). Se haproducido un crecimiento similar en el ca.mpo de las comunicaciones, en donde los costos se han desplo-mado a medida que la enorme demanda por el ancho de banda de las comtmicacones (la capacidad detransmisin de informacin) atrae una competencia intensa. No conocemos otros cambios en los que latecnologia mejore con tanta rapida y los costos disminuyan de una manera tan drstica. Dicha mejorafenomenal est fomentando sin duda la Revocddn de :lr infrrnacin.

    jerarqua de datosLos elementos de datos que procesan lascomputadoras forman una jerarquiade dato-aque se vuelve cadava ms grande y compleja en mtructura, a medida que progrmamos primero a bits, luego a caracters,despus a campos y asi en lo sucesivo. La gura 1.2 ilustra una porcin de lajerarqufa de datos. La figura1.3 sinretiia los nivelm de la jerarqua de datos.

    6 wm .eetl nes. con/electroni es-blogs/*I ndustr"laI-control -des'|gn`I 'l ne- b'I og/402?479/Rea-nen-program 1 n-C?pa9eNulber-1.

  • |.3 jerarqua de datos

    S11 `Iy Negro

    Tn Azul

    Indy Verde A-d1vo

    Ir! s Naranja

    Randy Rojo

    Judy Vcfl Hltw

    3 I-I 0 Y Campo

    OUIOOOW 01001010 Cfttcl' Lhitdt J

    1 Bit

    L2 I jerarqua de datns.

    Nivei Dtstiipin

    Bts Eldancnnodcdauosmispequcoenunaoompumdon pucdcnaunirdvalorodvalor 1.h0c|nmmm dcdimsxlcdmmna l'|it(abrv'Bc6ndc'dgim binario": un dgim que puede uum.i.r uno de dos valorcs). Esnmablcque lasmpmuionanms mcones que realizan las cnmputadm-as slo impliquenIasmanipuladoncsms lnpksdci y1sa:ann'nr'II1arJnmHt, estaabkerdmhrdf unitenwrrdnubrdf |m:'r(de 1:00 det): 1).

    C-amen:-ra Esnediooopualaspcsonastmhujarmndamscrnclfonnamdcbajoniwcldelosbi. En cambio. pmum Inbajax mn gmdedmmks (0-9), ktm (A-Z ya-1) y:fnhlanea`ak:(por ejemplo, $,@. 95, 8. ', (, ). -, +,", ?y}. Losdlgms, lens:ysimbolos especiales se conocen como cnrlctntel. El amianto dcuncluudela oompumdom cscl conjunto dc nodos los qu: scutilinn para mcribirprogmmziyrepvescnurcknzulnosdedanoalasoomputadozassloprocunnlos 1ylos0,por lo que dmnjunm dcamctua de una mmputadom lqarenmu a ada unocnmoun paundcloa1yIos0.]avausnancnems lhicodfqucutncnmpuams|cdos|IyI,mdaunodcloaq1aIcscnfonn|doam vlztochobits. Unicndeoonme anciana pan mudaosdc los idioma en el mundo. En elapntlc Lobmcndd ms infonna-cin sobre Unicode. En cl apndice B mnomms infon-nadn scbrccl conjunto de cnncacru ASCII (Ccligoulindlrslnclnunitlnnnepnnel nIzmImbiolein.fnnnn|:i6n}: elpnpular submnjunmdcUnindcqucrcprcnahslctnsmayu1|aayminm|as, lnsdfgimsyalgunnscamcmerescspecalucomunes.

    ng. 1.3 | wwe; da la jemqma amm; [pm 1 d 2).

  • 8 Captulo l Introduccin a las computadoras y a java

    Nivel DescripcinCampoo As como los cuneueresesen compueseoede bin, los eempoe lo ende por

    mmcimesobyl. Unmmpo uungrupodemxacneresobymesque eransminenunPor ejemplo, un campo oompucseode leuasmaydscislasymindsailas

    xplsedeumrpam lepresenlarelnombredeuna pemona. yuno mmpueseodedgimsdedmaler podrsrepreuemarsu edad.

    Registros Sepuleu usarvasios campos relacionados pan oomponerun Qiilm (el cual seimplementa como una dese eujava). Por ejemplo, en un siseema denomina. elregistro deun emplado podraconsistren mmposoe posiblestipos para hace semuerrmn entre parenees):I Nmero de denecadn dd empleado (Im nmero meo-o) Nombre (unaosdenadearaceeres)' Direccin (llnamdeua de camcneres]I Salario por bom (un nmero ooo pumeo decimal)I Ingm|oscIelaoalafocl1a(un nmemoonpunno0 Monm de impuesnoc :enenidos (un nmero con punno decimal)Aiimmgistlnesungmpoderamposldadonadosndejernploaneerioimdosloeounpoe perneoeoen al mismo anplesdo. Una compaa podra eener muchosernplmdosyllnrgistmdenminapammdauno.

    Archivos Unlehivoaungmpode|egsuoereIacionodoe.[Na'a:DiehoenformamdsFneral, un chivo mneiene danosatbiuariosen fonnanos arbitrarias. En algunossinunasopu-uivos,unard1voaevemnslommomusawmakdrQ;eeanlquerolnimcindeesosby'nes1unaml1ivn,eomocuanslose olpnizanlosdaoosenregisuoages miavsencreadaporel progi-amadordelaap1icaci6n].Esmuyoomnque umorpnilacin neogamuchoasrd1ivos,algunnsdeloscualespuedenoonoelzermiles de milions, o inclino billones decarxeeres de infonnacin.

    Fig. I.3 | Niveles de Iajerarquia de datos [parte 2 de 2].

    I.4 Organizacin de una computadoraSin importar las diferencias en loapariencia Hsiea,es posible percibir a las computadoras como si estuvie-ran divididas en varias unidades ldgcaso secciones (figura 1.4).

    Unidad logica Descripcin

    lhisllsl Ema seedn receptora obtiene infonnacin (danos ypsogmmasde cmputo) de loadeentrsda dinpoliiivoldeennadaylaponeadrposidndehsouasunichdesparaquepueda

    prooesarsn-.1.amsyor|1a.reedehinnna::i6n se inuoduceanavsdeloa eeclados,pantallas nietilesyraeones. La informacin eembin puedeiouodudrse de mlwlusoems formas, como hablar con su oolnpumdom, digiializarimner y debon-ias. leerdisposicivos deelmaoennmieneo secundario (oomo discosdums, unidadesde DVD, Blu-ray Discnl y Flash USB -tambin conocidas como unidadesdepulgar o "memoryseid:s"), recibir video deunadnnnwebeinformadnen summputadom a naves de Innemet (mino cuando durasp viclms de YouTule'"*" olibros elecuoniooe deunazon). las Iionnas mis eeiemesde amada son: leer losdatomdelnpoenanavs deun disposieivoGPS,yla informacin sobreelmovimimeo yla orientacin medianeeun aeleemeero en un telfono inoeliyneeo un controlador de juegos.

    Fig. L4 | Unidades lgicas deuna computadora [parte I de 2).

  • |.4 Organizacion de una computadora 9

    Llnidsd igica Descripcin[hidad Esta seccinde 'embarque' coma nfonmein que ya ha sido procesadapor lacompu-rsalidn mdomylamlomenlosdifermmsdipneivtldendgpomquesedisponible

    fuer-ade la computadora. En la actualidad. la mayorparte de la inforrnacinde salidade En compumdorzsedespli en pantallas, se imprime en papel, se reproduce comoaudio o video en ieproduceores de medios porttiles (como los populares Pod deApple) y pantallas Qgaores en mradios deportivos, se transminea rravde Interneto se utilin par-aoonu-olar ouosdiqsodvos, como rolsorsy apararos "inrel.ige|-ms".

    Unidad de Esta seccin de aimacrr deacoeso rpido, pero con relativa baja capacidad, retienememoria La informacin que se introduce a naves de la unidad de entrada, para que este

    disponibledemana inmediata y se pueda proccsarcuando su necesario. La unidadde memoria tambin retiene la informacin proomda hasta que la unidad de salidapucha colocarlaen losdirpositivos deaalida. La infonnacin en la unidad de memoriaes roldri por lo gnc:-al se pierde cuando seapag la computadora. Con frecuencia, ala unidad de memoria se le conoce como memoria o nnrnoria prineipal.l.1s tpicasmemorias prindpales en las computadoras de esa-moi-io ypornitiles condenar entre1 GB y 8 GB (GH se refiere a un gigabyte equivale aproximadamennes mil millones de byeer).

    Lhidad aritmtica Esta seccin de 'nnnufacrura' reslim cifrulorcomo suma, resta, multiplicacin yy lgica (ALU) divisin.'l`mbin contiene los tnecanismosde drdsin que permiten a la compu-

    tadora hacer cosas como, por ejemplo, comparar dos elementos de la unidad dememoriaparadeeerminarsison igualeso no. En lossisremasseruales. laALUse implementa porlogeneralcomo parce de lasiguienee unidad lgica, |aCPU.

    Ulidadiral Esmsccdo adminisuariva coordinaysarpervisalaoperncindelasder:nis.1.aCPUde procesamiento le indica a launidaddeerrtradsciuindodebegrabsrsels infonnscindeno-o dela(CPU) unidad derner-noria, a|aA1.U cundo debe urilintsela informacin dela unidad de

    memoria para los diculos, ya la unidad desalida cundo enviarla i.nrtnacindeatielaunidaddememotiahasraciermsdispositivosdesalida. Muchasdelsscompu-tadotas actuales contienen mltiples CPU y, por lo tanto, pueden rmlharmucbasoperacionra de manera simultnea. Un pmcendofnmltinlicleo impletnen variosprocesadores m un solo chip de circuinos integrados: unpmassdar drdale miden(dual-eonr) time dos CPU yunpnasedwde cudruple ncleo (quad-mn) tiene manoCPU. las computadoras de esericorio de la actualidad tienen procesadora quepueden ejecutar milesdemllones deinsrruccicnes por-segundo.

    Unidad de sta es la seccin de 'alrnacn' de alta capacidad y de larga duracin. Los programasHmacenamienln o danos que no utilizan hs dems unidadescon frecuencia se colocan en dispositi-seenndario vosdealrnnoenarnienro secundario (por ejemplo, el disco duro) hasta quese requieran

    de nuevo, lo cual puede ser cuestin de horas. das, mesas o incluso aosLa inm-nacin en losdisposi tivos de alrnacenarnieneo secundario esperrssmre:se conserva an ycuando se apaga la computadora. Eltiempo para acceder a lainformszin en alrnacenamienrosecundario es mucho mayor que el necemriopara acceder a la de la memoria principal, pero el com por unidadde memoriasecundaria es rnucbo menor que el oorrespondienee a la unidad de memoriaprincipal. las unidad de CD, DVD yFlssh USB son ejemplos de dispositivosde almacenamiento secundario, loscuales pueden contener hasta 128 GB.Los discos duros dpicos en las computadoras de escritorio y porcitles puedencontener hasta 2 TB (TB se refiere a oerabytes; un cerabyee equivale aproximada-mente a un billn de bynes).

    g. L4 | Unidades lgicas de una computadora [parte 2 de 2).

  • I0 Capitulo I Introduccin alas computadoras y a java

    I 5 Lenguajes mquina, lenguajes ensambladoresy lenguajes de alto nivel

    Los programadores scriben instruccionts en diversos lenguajm de programacin, algunos de los cua-les los comprende directamente h computadora, mientras que otros requieren pasos intermedios derraduccidrr. En laactualidad te utilizan cientos de lenguajm de computacin. stos se dividen en tres tiposgenerales:

    1. Lenguajes mquina

    2. Lenguajes ensarnbhdores

    3. Lenguajes de alto nivel

    Cualquier computadora puede entender de manera drectaslo su propio lenguaje mquina, elcualse define segn su diseo de hardware. Por lo general, los lenguaja mquina consisten en cadenas denmeros (que nalmente se reducen a los 1 y 0) que instruyen a las computadoras para rmlizar sus ope-raciones ms elementalu, una a la va. Los lenguajes mquina son de la (es decir,un lenguaje mquina en particular puede usarse slo en un tipo de computadora). Dichos lenguajes sondiciles de comprender para los bumarros. Por ejemplo, he aqui la seccin de uno de los primeros progra-mas en lenguaje mquina, el cual suma el pago de las horas extras al sueldo base y almacena el resultadoen el sueldo bmro:

    i-1300042 7 74+1400 5934 19+ 12002740 27

    La programacin en lenguaje mquina era demasiado lenta y tediosa para la mayora de los progra-madores. En vez. de utilizar las mdenas de nmeros que hs computadoras podan entender de maneradirecta, los programadores empezaron a utilizar abreviaturas del ingl para representar las operacioneselementalm. Estas abreviaturas formaron la base de los lenguajes ensambladores. Se daarrollaron pro-gramar traductores conocidos como utsambladores para convertir los primeros programas en lenguajeensamblador a lenguaje mquina, a la velocidad de la computadora. La siguiente seccin de un progra-ma en lenguaje ensamblador tambin suma el pago de las horas extras al sueldo base y almacena el resul-tado en el sueldo bruto:

    'load suel dobaseadd suel doextrastore suel dobruto

    Aunque ste cdigo 3 ms claro para los humanos. hs computadoras no lo pueden entender sino hastaquese traduce en lenguaje mquina.

    Eluso delascomputadoras se increment rpidarnentecon la llegada de los lenguajscnsambladorts,pero los programadores an requeran de muchas instrucciones para llevara cabo incluso hasta hs tareasms simplm. Para agilizar el procwo de programacin se dmarrollaron los lenguajes de alto nivel, endonde podan escribirse instrucciones individuales para rmlizar tareas importantes. Los programas tra-ductores. denominados compilatlores, convienen programas en lenguaje de alto nivel a lenguaje mqui-na. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que son muy similaresal ingls comn, y contienen la notacin matemtica comn. Un programa de nmina escrito en unlenguaje de alto nivel podra conte ner una instruccin como la siguiente:

    sue'IdoBruto = sueldoase + sueldolxtra

    Desde el punto de vista del programador, los lenguajes de alto nivel son mucho ms recomendablesque los lenguajes mquina o ensambhdor. java es, por mucho, el lenguaje de alto nivel ms utilizado.

  • 6|.6 Introduccin a la tecnologa de los objetos I I

    El proceso de compilacin de un programa escrito en lenguaje de alto nivel a un lenguaje maquinapuede tardar un tiempo considerable en la computadora. Los programas ntrprezrs se dmarrollaronpara ejecutar programas en lenguaje de alto nivel de manera directa (sin el retraso de la compilacin),aunque con ms lentitud de la que se ejecutan en los programas compilados. Hablaremos mas sobre laforma en que trabajan los intrpretes en la seccin 1.9. en donde aprender que java utiliza una astutamezcla de compilacin e interpretacin, optimizada con base en el rendimiento, para ejecutar los pro-gramas. Los ejercidos 7.35-7.37 (en la Seccin especial: Cree su propia computadora) le guiarn atravs del proceso de creacin de un programa intrprete.

    Introduccin a la tecnologa delos objetosCrmr software en forma rpida, correcta yeconrnica sigue siendo un objetivo dicil de alcanzar enuna poca en que la demanda de software nuevo y ms poderoso va en aumento. Los objetos, 0 dichoen forma ms precisa -como veremos en el capitulo 3- las clase: de las que provienen los objetos,son en esencia componentes de software reurilizables. Existen objetos de fecha, objetos de hora, ob-jetos de audio, objetos de video, objetos de automviles, objetos de personas, etctera. Casi cualquiermstan tivo se puede reprmen tar de manera razonable como un objeto de software en trminos de susarriban: (como el nombre, color y tamao) y mmporramimms (por ejemplo, calcular, moverse y co-mtulimrse). Los desarrolladores de software han dmcubierto que al usar una metodologia de diseoe implementacin orientada a objetos y modular, pueden crea grupos de desarrollo de software msproductivos de lo que era posible con las tcnicas populares anteriores, como la prograrnacin es-n-ucturada por lo general los programas orientados a objetos son ms faciles de comprender, corregirY Incld-iff.

    Elautomvil como un objetoPara ayudarle a comprender los objetos y su contenido, empecemos con una analoga simple. Supongaque desea conducir un auto] imcerquemya m: rpidos!oprimir elpedaldelaoelmrdor. Qu debe ocurrirparaque usted pueda hacer sm? Bueno, anne; de que pueda conducir un auto, alguien tiene que uarla.Por lo general, un auto empieza en forma de dibujos de ingeniera, similares a los plano: de construccinquedscriben eldiseo de unacasa. Estosdibujos de ingenierfaincluyen ddiseo del pedal del acelerador.El pedal ocuka los complejos mecanismos que se encargan de que el auto aumente su velocidad, de igualforma que el pedal del teno oculta los mecanismos que disminuyen la velocidad del auto y el volanteoculta los mecanismos que hacen que el auto de vuelta. Esto permite que las personas con poco o nadade conocimiento acerca de cmo iimcionan los motors, los enos y los mcmnismos de la direccinpuedan conducir un auto con facilidad.

    Por dmgracia, asi como no Q posible cocinar en la cocina de un plano de construccin, tampocoes posible conducir los dibujos de ingeniera de un auto. Antes de poder conducir un auto, ste debemrurrurrr a partir de los dibujos de ingeniera que lo dmcriben. Un auto completo tendr un pedal acelerador verdadero para hacer que aumente su velocidad, pero an as no es suficiente; el autono acelerar por su propia cuenta (esperernos que as seal), asl que el conductor debe oprimir el pedaldel acelerador para aumentar la velocidad del auto.

    Mtodos] :laserAhora vamos a utilizar nuestro ejemplo del auto para introducir algunos conceptos clave de la pro-gramacin orientada a objetos. Para realizar una tara en una aplicacin se requiere un mtodo, elcual aloja las instrucciones del programa que se encargan de ralizar sus tareas. El mtodo oculta alusuario stas tareas, dela misma lorma que el pedal del acelerador de un auto oculta al conductor losmecanismos para hacer que el auto vaya ms rapido. En java, creamos una unidad de programa lla-mada clase para alojar el conjunto de mtodos que rmiizan las taras de ma clase. Por ejemplo, una

  • Captulo I Introduccin las computadoras y a Java

    dase que representa a urta cuenta bancaria podria contener un mtodo para depositar dinero en unacuenta, otro para rerirary un tercero para roficirarel saldo actual. Una clase es similar en concepto alos dibujos de ingeniera de un auto, que contienen el diseo de un pedal acelerador, volante de di-reccin, etctera.

    twancianuenroAs como alguien tiene que cortrrmir un num a partir de sus dibujos de ingenieria para que otra personalo puedaconducir despus, tambin es necesario crear un mde unaclase para que un programa puedarealizar las tareas definidas por los mtodos de Ga chse. Al proceso de hacer esto se le denomina infrarr-ciamimro. Entonces, un objeto viene siendo una instancia de su clase.

    IieutilrlnarinAsi como los dibujos de ingenierade un auto se pueden rerrrilizarmuchas veces para construir muchosautos, tambin m posible rerrrzr una clase muchas voces para orar muchos objetos. Al reutilizar lasdases existentes para crear nuevas clases y programas, alrorr-amos tiempo y esrerno. La reutilizacintambin nos ayuda a crm: sistemas mas conabla y efectivos, debido a que con 'eCuencia las clas ybs componentes eristentes pasan por un extenso proceso de prueba, depuracin y optimizacin delriaenrpea.De la mismarnaneraen quela nocin depieza: inzerramlriabkr fue crucial para la RevolucinIndustrial, las clases reutilizahles son cruciales para la revolucin de software incitada por la tecnologade objetos.

    __, , Observacin de ingeniera de software l.l-Ut: un rinda de o-msrruenrr en bloqaerpicn rmtrpmgranm. Evite reirtvemw la ruda: tor prlrsas

    "'-'-"eh eriraerues riempnqnesfsjtatiie Erre rnitiiieadrrdesmareer rm hmqido :Lua-de lapmgrmrrrrridnorientada a jerw.

    Mmsnjuy llamadas a mirado:Cuando conduce un auto, al oprimirel pedal del acelerador enva tm mensaje al auto paraque rmliceuna tarea: aumentar la velocidad. De manera similar, es posible enviar memqet a un orto. Cada men-saje se implementa como llamarla a mtodo, para indicar a un mtodo del objeto que rmlice su tara.Por ejemplo, un programa podra llamar al mtodo depositar de un objeto cuenta de banco especlcopara aumentar el saldo dew. cuenta.

    Atributos] varriclries de irrsranciaAdemas de tener capacidades para realizar tareas, un auto tambin tiene atributos: color, nmero depuertas, cantidad de gasolina en el tanque, velocidad actual y registro del total de kilmetros recorridos(Q decir, la lectura de su velocmetro). Al igual que sus mpacidadm, los atributos del auto se representancomo parte desu diseo en sus diagramas de ingeniera (que, por ejemplo, agrego un velocmetro y unindimdor de combustible). Al conducir un auto real, aros atributos van incluidos. Cada auto conservasus proprbr atributos. Por ejemplo, cada uno sube cunta gasolina hay en su tanque, pero no cuanta hayen los tanque de otros autos.

    De manera similar, un objeto tiene atributos que lleva consigo a medida que se utiliza en un pro-grama. Estos au-ibutos se especifican como parte de la clase del objeto. Por ejemplo, un objeto cuentabancaria tiene un atributo :chia que representa la cantidad de dinero en h cuenta. Cada objeto cuen-ta bancaria conoce el saldo de la Cuenta que reprmenta, pero rra los saldos de las tiras cuentas en elbanco. Los atributos se especifican mediante las variablesde instancia de la clase.

  • l.7 Sistemas operativos I3

    Eruapnlanurrtolas class enmpsttlnn (envuelven) los atributos y mtodos en objetos; los atributos y mtodos de uncbjeto estn muy relacionados entre sl. Los objetos se pueden comunicar entre sl, pero por lo generalno se les permite saber cmo estan implementados otros objetos; los detall de implemerttacin stanocultos dentro de los mismos objetos. Este ocultamiento de informacin, como veremos mas adelante,G crucial para la buena ingeniera de software.

    Here'm1'aEs posible crm: una nueva clase de objetos con rapidez y de manera conveniente mediante la herencia:la nueva clase absorbe las caracteristicas de una clase existente, con ia posibilidad de personalizarlasy agregar aracrer1'stit'as nicas propias. En rrumtra analoga del auto, sin duda un objeto de la claseconvertible er un objeto de la chse ms genera! llamada automvil pero, de manera ms erpecica, eltecho puede ponerse o quitarse.

    /Indiinlry diseo orientado rr oetos (A/DOO)Pronto escribir programas en java. Cmo crear el (es decir, las instrucciones) parasus progra-mas? Tal va, al igualque muchos prograrnadores,slo entender su computadora y empezar a escribir.Quizs este mtodo funcione para pequeos programas (como los que presentarnos en los primeros ca-ptulos del libro), pero qu tal si le pidieran crmr un sistema de software para controlar miles de cajerosautomaticos para un banco importante? O si le piden que con un equipo de 1,000 desarrolla-dores de software para crear el nuevo sistema de control de trfico areo en Estados Unidos? Para pro-yecms tan grande y complejos, no es conveniente tan slo sentarse y empezara escribir programas.

    Para crear las mejores soluciones, debe seguir un proceso de anlisis detallado para determinar losrequerimientos de su proyecto (denir qu!se supone que debe hacer el sistema) y dmarrollar un diseoque los satisfaga (decidir oimo debe hacerlo el sistema). Lo ideal serla pasar por este proceso y revisar eldiseo con cuidado (ademas de pedir a otros profutionales desoftware que lo revisen) antes de escribircualquier cdigo. Si este proceso implica analizar y disear su sistema desde un punto de vista orientadoaobjetos, se denomina proceso de anlisis y diseo orientado a objetos (ADOO]. Los lenguajm comojava son orientados a objetos. La programacin en un lenguaje de este tipo, conocida como prognnta-cin orientada tt objetos (POD), le permite implementar un diseo orientado aobjetos como un siste-ma tncional.

    El Ull. (Inrguaje urri`cad'a de modelado)

    I.7

    Aunque existen muchos procesos de AJDOO distintos, hay un solo lenguaje grlco para comunicar losrmultados de cualquier proceso de A/DOO que se utiliza en la mayora de los casos. Este lenguaje, cono-cido como Lenguaje unicado de modelado (UML), es en la actualidad el esquema grfico mas utilizadopara modelar sistemas orientados a objetos. Prmenramos nuatros primeros diagramas de UML en loscaptulos 3 y 4; despus los utilizamos en nuestro anlisis ms detallado de la programacin orientada aobjetos en el captulo ll. En nustro ejemplo prctico apcirmaide ingeniera de software del ATM en loscaptulos 12 y I5 presentarnosun subconjunto simple de lascaracterlsticas del UML, mientras lo guiamospor una experiencia de diseo orientada a objetos.

    Sistemas operativosLos sistemas operativos son sistemas de software que se encargan de hacer ms conveniente el uso dehs computadoras para los usuarios, dsarrolladors de aplimciona y administradora de sistemas. Lossistemas operativos proveen servicios que permiten acadaaplicacin ejecutarse en forma segura, eficien-

  • 4 Captuio I Introduccin alas computadoras y a Java

    te y conrurrmte (es decir, en paralelo) con otras aplicaciones. El software que contiene los componentesbsicos del sistema operativo se denomina lteenel. Los smemas operativos de escritorio populares son:Linux, Wndows 7 y Mac OS X. Los sistemas operativos mviles populares que se utilizan en telfo-nos inteligentts y tabletas son: Android de Google, BlackBerry OS y Apple iOS (para sus dispositivosiPhone, iPad e Pod Touch).

    W't'n.d'ows.' un sistema operarivapropietanbA mediados de la dcada de 1980 Microsoft desarroll el sistema operativoWindows, el cual consis-te en una interz grfica de usuario creada sobre DOS: un sistema operativo deoomputadora personalmuy popular en la epoca en que, para interactuar con l, los usuarios tecleaban comandos. Windowrstom prestados muchos conceptos (como los iconos, mens y ventanas) que se hicieron popularesgracias a los primeros sistemas operativos Apple Macintosh, desarrollados en un principio por XeroxPARC. Windows 7 es el sistema operativo ms recien te de Microsoft; algunas de sus ciracterlsticas son;mejoras en la interfaz de usuario, un arranque mas veloz, un mayor grado de renarniento en cuanto ahs m.racterlstitas de seguridad, soporte para pantalla tctil y multitctil, y otras ms. Windows es unsistema operativo propietario; esta bajo el control exclusivo de una compaa. Windows es por muchoel sistema operativo ms utilizado en el mundo.

    Imx: un .tissmur operativo de cdxlgonrrre abiertoEl sistema operativo Linus m tal va el ms grande xim del movimiento de cdignimue abierto. Elcdigo fuente abierto es un estilo de desarrollo de software que se desva del duarrollopropietario, elCual predomin durante los primeros aos del software. Con el dxrrollo de cdigo fuente abierto,individuos y compaias unen sus esfuerzos para desarrollar, man tener y evolucionar el software a cam-bio del derecho de usarlo para sus propios fines, por lo general sin costo. Por lo general el cdigo fuen-te abierto es escudriado por una audiencia mucho mayor que la del software propietario, de modoque casi siempre los errors se eliminan con ms rapidez. El cdigo iente abierto tambin fomentauna mayor innovacin. Sun abri el cdigo de su implementacin del Kit de desarrollo de Java y demu-Chas de sus tecnologas de java relacionadas.

    Algunas organizaciones en la comunidad de cdigo fuente abierto son: la fundacin Eclipse (elEntorno integrado de desarrollo Eclipse ayuda a los programadores de java a desarrollar softwarede manera convenien te), la fundacin Mozilla (creadores del navegador Web Firefox), la fundacin desoftware Apache (creadores del servidor Web Apache que se utiliza para desarrollar aplicaciones basa-das en Web) y SourceForge (quien proporciona las herramientas para administrar proyectos de c-digo fuente abierto; tiene ms de 260,000 de estos proyectos en dsarrollo). Las rapidas mejoras en lacomputacin y las comunicaciones, la reduccin en costos yel software de cdigo fuente abierto hanlogrado que sea mucho ms fcil y econmico crm: un negocio basado en software en la actualidadde lo que era hace unas cuantas dcadas. Facebook es un gran ejemplo de ello; este sitio se inici desdeun dormitorio universitario y se Cre con software de Odigo fuente abicrtof

    El kernel de Linux es el ncleo del sistema operativo de cdigo iente abierto ms popular y llenode funcionalidadu, que se distribuye en forma gratuita. Es daarrollado por un equipo de voluntariosorganizados de manera informal; es popular en servidors, computadoras personales y sistemas incrusta-dos. A diferenciado los sistemas operativos propietarios como Windows de Microsoft y Mac OSXdeApple,el cdigo fuente de Linux (el cdigo del programa) est disponible al pblico para que lo exarninen ymodifiquen; adems se puede descargar e instalar sin costo. Como resultado, los usuarios del sistemaoperativo se benefician; de una comunidad de desarrolladores que depuran y mejoran el kernel de

    7 deveopers.faceboolncon/opensource/.

  • 1.7 Sistemas operativos IS

    maneta continua, de la ausencia de cuotas y restricciones de licencias, y de la habilidad de poder per-sonalizar por completo el sistema operativo para cumplir necesidades mpecms.

    En 199], Linus Torvalds, un estudiante de 21 aos en H Universidad de Helsinlti en Finlandia,empat a dcsarrolhr el kernel de Linux oomo un pasatiempo (El nombre Linux se deriva de "Linus" yUNIX: un sistema operativo desarrollado por los Laboratorios Bell en 1969). Torvalds quera mejorarel diseo de lt/linint, un sistema operativo amdtnioo crudo por el profuor Andrew Tanenbaum de laVrije Universiteit en Amsterdam. El cdigo fuente de Minix estaba disponible al pblico para que losprofesora pudieran demostrar los conceptos basicos de la implementacin de sistemas operativos a susatudiantes.

    Torvalds liber la primera versin de Linux en 1991. La respuesta favorable condujo a la creacin deunaoornunidad que ha continuado con el desarrolloy soporte de Linux. Los desarrolladora descargaron,probaron y modificaron elcdigo de Linux; dupus enviaron correcciones deerroresy retroalimentacinaTorvalds, quien revis esa informacin y aplic las mejoras al cdigo.

    La liberacin de Linux en 1994 integr muchas caractersticas que se encontraban por lo general enun sistema operativo maduro, con lo cual Linux se convirti en una alternativa viable con respecto aUNIX. las compaas de sistemas emprsarialm oomo IBM y Oracle se interesaron cada vez ms en Li-nux, a medida que ste se vo Iva mas estable yse extenda a nuevas plataformas.

    Son varhs cuestiona -el poder de mercado de Microsoft, el pequeo nmero de aplimcionu Linuxamigables para los usuarios y hi diversidad de distribuciones de Linux, tales como Red Hat Linux, Ubun-tu Linux y muchas m:ls- las que han impedido que se popularioe el uso de Linux en las oomputadorasde escritorio. Sin embargo, este sistema operativo se ha vuelto muy popular en servidores y stemas in-crustados, oomo los telfonos inteligentes basados en Android de

    AndroidAndroid _el sistema operativo para dispositivos mvil@ y tellbnos inteligents, cuyo crecimiento hasido el ms rapido hasta ahora_ est basado en el kernel de Linux y en java. Los programadores aperi-mentados de java no tienen problemas para entrar y participar en el desarrollo de aplicaciones pa.raAn-droid. Un beneficio de desarrollar este tipo de aplicaciones es el grado de apertura de la plataforma. Elsistema operativo es gratuito y de fuente abierto.

    El sistema operativo Android fue desarrollado por Android, Inc., compaa que adquiri Google en2005. En 2007 se form la Alianza para los dispositivos mviles abiermf" (OHA) -un consorcio de34 compaas en un principio, yde 79 para el ao 2010-, paracontinuar con eldesarrollo de Android.Al mes de diciembre de 20 l 0, se activaban ms de 300,000 telfonos inteligentes con Android a diariol'Ahora los telfonos Android se venden mas que los iPhone. El sistema operativo Android se utiliza envarios telfonos inteligentes (Motorola Droid, HTC .EVOTM 4G, Samsung VibrantTM y muchos ms),dispositivos lectores electrnicos (como el Noble Nookm de Barnes and Noble), computadoras tipotableta (Dell Strealt, Samsung Galaxy Tab y otras mis), quioscos con pantallas tctiles dentro de las tien-das, autos, robots y reproductores multimedia.

    Los telfonos inteligentaAndroid tienen h lncionalidad de un telfono mvil, cliente de Internet(para navegar en Web y comunicarse a travs de Internet), reproductor de MP3, oonsoladejuegos, cama-radigital y dems, todo envuelto en dispositivos porttiles conparmzllar mubirdrriks a todo color -staspantallas le permiten controlar el dkpositivo con ademaru: en los que se requieren uno o varios toquessimultneos. Puede dmcargar aplicaciones de manera directa a su dispositivo Android. a travs del An-droid Market yde otros mercados de aplicaciones. Al mes de diciembre de 2010 haba cerca de 200,000aplitacionts en el Android Market de Google.

    8 wwu.pc|Iag.con/ar1:'lc'Ie2/03817.23?-l-076.00.asp.9 mas hable .cun/2010/08/02/and raid-outsel 1 ng-iphone-2 /.

  • IG

    0'?

    Captulo I Introduccin a las computadoras y a java

    rulos de deserrolfo de plr'cacionesndrodeu :In'tr'o We mnrplennntarioRbido alenorme inters enlosyapiicaeiones basadasenndroid, hemos integrado en elsioWeb complementario del libro una introduccin de tres captulos al desarrollo de aplicaciones Android,bs cuales pertenecen a nusrro nuevo libro, An.dro1`d_f`r Prgmmmm-:An App-Driven Approach. Dcspusde que aprenda Java, descubrir que no es tan complicado empezar a desarrollar y ejecutar aplicacionesAndroid. Puede colocar sus aplimciones en el Android Market en lnea (own .market.andro'Id. col) y, sise vuelven populares, tal vu. hasta pueda iniciar su propio negocio. Slo recuerde: Facebook, Microsofty Dell se iniciaron donde un dorrnimrio.

    e II.8 Lenguajes de programacionEn esta seccin veremos unos cuantos comentarios breve sobrevarios lenguajes de programacin popu-Iaru (gura 1.5). En la siguiente seccin veremos una introduccin ajava.

    Fortmn Forum (FOR.m1.lla TRANs|amr, Traductor de fnnulas) fue desarrollado por IBMCorporation a mediados dela dcada de 1950 para urilimxseen aplicaciones cientificasyde ingeniera que requeran dleulos manemcos complejos. An se utiliza mucho ysus versiones mas reciensessnn orientadasa objems.

    CDB01- COBOL (COmmon Business Orieneed Language. Lenguajecnmn orientado a nego-cios) fue dmnollado afnales dela dcada de 1950 por fabrimnmde compuesdoras.el gobierno esndounidens: yusuarios decomputado de la industria. con baseenun lenguaje desarrollado por Grace Hopper. un ocial de la Marina de Estados Unidosyciendfco COBOL an se utiliza rnucbo en aplicaciones comercialesque requieren de una manipulacin precisa y ecienoede grandes volmenes dedasos.Su venn misrecienne sopona la programacin oriemadaa objenos.Las actividades de invesrigcin en la dcada de l960diemn como resultado lapmgrmnadueruauredaz un mtodo paraescribirprogramas quesanrnds daros y fidlesdepsobar, depurar. ydemodiear que los programas exnensosproducidos con momias anreriorm. Uno de los ruulmdos ms tangibles de esta'nvestigicin fue ei dan-ollo del lenguaje de prognmadn Pasos] por el profesorNiklauswreh en 1971. Sedisel pamlaenselanzadelaprogramaein umlcnlradayre popular en loscursos universimrios duranuevarias deudas.Ada, un basado en Pasml, se denrroll bajo ei patrocinio del DepanramenmdeDefensa (DOD) de los Estados Unidos dumnee la dcada de 1970 y a principios dela ddoada de 1980. El DOD queda un solo lenguajeque pudiera sarisfaeerla mayorade sus necesidades. El nombre de este lenguajebesado en Pascal s en honordeladyAda lnveiace, hija del poem Lord Byron. A ella se learribuye el baberesuim el peimerprogmmapammmputadoms eneirnundo,a principiosdela dmda de 1800 (pan laMaquina Analtica, un dispositivo de cmputo mecnico diseado por CharlesBabbage). Su versin mas reeienmesoporta la programacin oiienlada a objetos.Basiesedoerrroll en ladmdade l960en el Daremourh Collge, paminuodueiralosprincphnnesa la programacin. Muchas de sus versiones ms reeieneesson orienmdasa objems.C Fue implementado en 1972 por Dennis Risehie en los Iaboraeorios Bell. En un prin-cipio sr hizo muy popular como el lenguaje dedmnollo del sistema openarivo UNIX.En laaceua1idad,|a maynradelcdign pan lnssisnernas operativnsdepmpsimgeneral seeserbe en C o C++.

    Pascal

    Ada

    Basic

    C

    ng. |.s | om; lenguajes de pmgfamafn (pm 1 de 2).

  • LenguajedeprogramacinC++

    Objeczive-C

    Visual Basic

    Vimal C8

    PHP

    Python

    javaSct-ipt

    Ruby on Rails

    Scala

    L8 Lenguajes de programacin I1

    Descripcin

    C++, una utensin tk C, fue denrrollado por Bjame Srroustrupa principios deladcada de 1980 en los Iaboraeorios Bell. C++ proporciona varias raracseris-ticas que'pulen' al C, pero lo mas importance G que proporciona la mpacidadet dema programacin orientada a objenos.Objecr.ivoC es un orientado a obietosbasado en C. Se desarroll a principiosdela decada de l980ydespues fueadquirido porla empresa Next, que asu vezfuecomprada por Se ha convenido en el lenguajede programacin clave para elsisaerna operativo Mac OS X ytodos los dispotivos operados porel OS (como losdispositivos iPod. iP|\onee iPad).

    El lenguaje Visual Basic de Microsoft se introdujo a principios de la dcada de 1990pam el desarrollo de aplicadon pm Microsoft Windows. Sus versionsms recientes soportan la programacin orientada a objetos.Los tres principrl de programacin de Microsoft son Visual Basic, VisualC++ (basado en C++) yCI (basado en C++ yjava; desarrollado para insegrarlnternety Web en las aplimciones de computadora).

    PHP es un lenguajeorientado a objeeos de sentencias de comandos' y 'codigo fuenaeabienao' (vea la seccin 1.7), el cual recibe soporne por medio de una comunidad deusuarios ydmrtolladotes; se utiliza en numaosos sitios Web, entre ellosy Facebook. PHP es independiente de la plamfbnna: eeisuen implementaciones paratodos los principales sistemas operativos UNIX, Lirunt. Mae ywindows. PHP tarnbinsoporta muchas bases de datos, mmo MySQL.

    Pytbon, otro lenguaje orientado a objeses de secuencias deootnandos, se liber alpblico en 1991. Fueduarmlladn por Guido van Rossum del Institum Nacional deinvestigacin para laslvlatzerntieas yCienciasComputacionales en An-tseerdarn (CWl);la mayorpartede Python se bamen Modula-3: un lenguaje de programacin desis-nernas. Python es "e1mensible: puede eiteenderse a travs de dases e interfacesde programacin.

    _lavaStr-pt esel lenguaje de secuencias decomandos ms utilizado en el mundo.Su principaluso esparaagregarpacidadde pmgruna.citSnalaspigi.nasWebporejernplo, anintacioneseinteractividad con el usuario. Los principales [email protected] cuentan con H.

    Rubyfuecreadoarnediadosde ladecada de l990porY.1ltihiroMa|sumoto;esun lenguaje de programacin orimtado a objecos de ueneeabierso, con unantaxis que es sin-ihra Python. Rubyon Railsoombina el lenguaje de secuen-cias deoomandoa Ruby con el marco de deaplimdones Web Rails, duarrolladopot57Sigsals. Su libro, (.m`sgReal(gett1ngres'I .37s1a1s.coU/*hoc .php). es unalecnrra obligtoria para los desarrolladores Web. Muchos desarrolladores de RubyonRails han reportado ganancias de productividad superioresa las de otros lenguajes.al utilizar aplimciones Web que trabajan de manera innensiva con basesde danos.Rubyon Railsse utiliz paracrearlainterfazde usuario deTwin:er.

    Sala scale-'Iang .ong/nodo/273), abreviacin un ingls de lenguaje esmlable',lite diseado porMartin Odersley, un profesoren la cole Polynedtnique FderaledeI.ausanne CF.PFL)en Suiza. Selanzalpblioo en 2003; utiliza losparadigrnasdeorientacin a objetos yde programacion funcional, yuri diseado para integrarsemn ]ava. Si programa en Sula, podr reducir demanera oonsidble la mnridadde en sus aplicaciones. Twitter y Fouuquate usan Sala.

    Fig. I.$ | Otros lenguajes de pmgramacin (parte 2 de 2).

  • la

    I.9

    Captulo I Introduccin alas computadoras y a Java

    ,lava y un tpico entorno de desarrollo en javala contribucin mas importante ala fecha de la revolucin del microprocmador es que hizo posible eldesarrollo de las computadoras personales. Los microprocesadores estn teniendo un profundo irn-pacto en los dispositivos electrnicos inteligentes para uso domstico. Al reconocer esto, Sun Micro-systems patrocin en 1991 un proyecto interno de investigacin corporativa dirigido por jamesGosling, que result en un lenguaje de programacin orientado a objetos y basado en C++, al queSun llam java.

    Un objetivo dave de java m poder escribir programas que se ejecuten en una gran variedad de siste-mas computacionales y dispositivos controlados por computadora. A esto se le conoce algunas vecescomo mcribir una vez, ejecutar en parte.

    La popularidad del servido Web se intensific en 1993; en ese entonces Sun vio el potencial de usar]ava para agregar mrrtemde dinmico, como interactividad y animaciones, alas pginas Web. java ge-ner la atencin de la comunidad de negocios debido al fenomenal inters en Web. En la actualidad,java se utiliza para dsarrollar aplicacions empresarials a gran escala, para mejorar la rncionalidacl delos servidores Web (las computadoras que proporcionan el contenido que vemos en nuestros explora-cbrs Web), para proporcionar aplicaciones para los dispositivos de uso domstico (como telfonoscelulares, telfonos inteligentes, receptores de televisin por Internet y mu cho ms) y para muchos otrospropsitos. En 2009, Oracle adquiri Sun Microsystems. En la conferencia ]avaOne 2010, Oracleanunci que el 97% de todas ias computadoras de escritorio, tres mil millones de dispositivos porttilesy 80 milions de dispositivos de televisin ejecutan java. En la actualidad hay cerca de 9 milionsde desarrolladores de java, en comparacin con los 4.5 millones en 2005. ' Ahora java es el lenguaje dedesarrollo de software m utilizado en todo el mundo.

    Bilrbrecns de clases JejrrwrUsted puede crear cada clase y mtodo que necmite para formar sus programas de java. Sin embargo,la mayoria de los programadores en ]ava aprovechan hs ricas colecciones de clases existentes en hs bi-bliotecas de clases de java, que tambin se conocen como API (Inter-Faces de programacin deaplicaciones) de java.

    .,___ Tip de rendimiento I.|-.rrtiizd ilrrdsrery modosde l'asAPId:]er.u1r tired: :rcrir rrtrpmpiar rxrrionrrpue-

    ' Jrrugiomrelrrnriruirnmderrepregrrmer,yaqrrerrrardrtrrr_ymms'orrrrnerrrardensarremaridadorapamrndsnar-mrrmde. Eimomrarnirnduaelnkmpoderermodelsrrpmgrurmsx.

    Tip de portabilidad LIAmgrre er mdtdcil esrrir pmgrrenuu portable: (programar que se prredr en

    Ld madres tipos r`nr'nm.r Jr mrprmrdonsr) rrrrua que en la :sugera dr los orrru bngrnjerdepmgrauadn, fo:rdr_'jr|mtr`ar mas lssmmpiladerrr, r.rl/Ivfyilarcranrprrtarrasprrednrocasionar que sea drlcignar kponadad Elrrslple Indra de esotiirprvgmnrcr enfarsa nogrnmrtrita hptalidsd.

    Ahora explicaremos los pasos tipicos utilizados para crear y ejecutar una aplicacin en java, me-diante el uso de un entorno de desarrollo (el cual se ilustra en las figuras 1.6-1.10). Por lo general. losprogramas en java pasan a trav de cinco Pisa: edicin, compilacin, carga, verificacin y ejecucin.Hablaremos sobre estos conceptos en elcontertro del Kit de desarrollo de java SE (JDK). Puede descargarel IDK ms actualizado y su documentacin en rwm.orac'Ie .com/technetwork/javafjavasel

    10 jaxenter _ con/hawnany- java- devei opers -are-there 104 62 _ htn.

  • |.9 Java y un tpico entomo de desarrollo en java I9

    dounoads/'I ndex _ html. Lea la .tensin Ama de ernprar este lbropara rmgurarrede configurar su compu-mdam en rnu: apropiada para mmpilar y g'e-usar programas en wz. Tal vez tambin dmee visitar elcentro para principiantes dejava (New to java Center) de Oracle en:

    wm .orac'Ie.cc|n/technetwork/top'l cs/newtojava/overvi eu/1 ndex . hun`I

    [Nom este sitio Web proporciona las instrucciones de instalacin para Windows, Linux y Mac OS X.Si no utiliza uno de emos sistemas operativos, consulte la documentacin del entorno de java de su sis-uema o pregunte a su instructor cmo puede realizar estas tareas con base en el sistema operativo de summputadora. Si encuentra un problema con te o cualquier otro vnculo mencionado en este libro,visite el sirio vmw.de^i tel . com/books/j htp9/ para consulta: la fe de erratas y notifiquenos su problemaal correo electrnico [email protected]].

    Iizse I: Crenrlrr de unpragramala la.-we l consiste en editar un archivo con unprograma de edicin, conocido comnmente como editor(figura 1.6). Usted escribe un programa en java (conocido por lo general como lilente) por mediodel editor, rmliza las con-eocions necesarias y guarda el programa en un dispositivo de almacenamientosecundario, oomo su disco duro. Un nombre de archivo que termina con la extensin . java indica quem contiene cdigo fuente en java.

    _ `- FJ progamasecrea en unha : dcn um, ditory Se 'almacena en cisco.

    __ er un rdwocuyo nombreen-nina con . java.

    Hg 1.6 | momo de amfmll tipico de Java; fase de edicion.

    Dos de los editores muy utilizados en sistemas Linux son vi y amics. En Windows, basta con usar elBloc de Notas. Tambin hay muchos editores de freeware y shareware disponibles en lnea, como Edit-Plus (vmv.ed1tp1us.com),TextPad (mu. textpad.com)y Edit (vmn.jed1t.org).

    Para las ornizaciones que desarrollan .stenxas de informacin extensos, hay entornos de desa-rrollo integrados (IDE) disponibles de la mayora de los proveedores de software. Los IDE proporcio-nan herramientas que dansoporte al proceso de desarrollo del software, incluyendo editores pataesctibiryeditar programas, y depurador-es para localizar stores lgicos: errores que provocan que los progra-mas se ejecuten en forma incorrecta. Los IDE populares son Eclipse (ww.ec`| 'pse.org) y NetBeans(wuw.netbeans.org).

    Rzse2: Crmq:'c:'n de unprograma enjavapra convertira en cdigos de bytesEn la fase 2, el programador utiliza el comando javac (el compilador de Java) para compilar un programa (figura 1.7). Por ejemplo, para compilar un programa llamado B1 enven do. java, escriba

    javac 81 envenido . java

    en kt ventana de comandos de su sistema (es decir, el Smbolo del sistema en Windows, el indicador de:hellen Linux o h aplicacin Terminal en Mac O5 X). Si el programa se compila, el compilador produceun archivo .clan llamado Bi envenido . class que contiene hversin oornpihda del programa.

  • 20 Captulo I Introduccin a las computadoras y a java

    _., FJ compilador crea codigos de

    5112:.: ;:-"'11-= _ _ C1 _-*-`_f.r/ trmma con ass

    Hg L7 I Entorno de desarrollo tipico dejava: ase de compilacin.

    El compihdcr dejava traduce el cdigo fuentedejava en bytes que representan hs tarasaejecutar en la fase de ejecucin (Base 5). La virtual dejan (IVM), que formaparte delIDI(yes h base de la platalbrma java,ejecuta los cdigos de bytes. Una (VL) es una aplica-cin de software quesimula aunacomputadora, pero oculta elsternaoperalivo yel hardware subyacen-es de los programas que interactan con sta. Si se implementa la misma VM en muchas plataformasmmputacionals, las aplimcions que ejecute se podrn utilizar en todas mas phtaformas. La IVM esunadelas mquinas virtualesms utilizadas en laactualidad. la plataforma NETde Microsoft utilizaunaarquitectura de mquina virtualsimilar.

    A diferencia del lenguaje mquina, que depende del hardware de una computadora especlca, loscdigos de bytes son instruccions independientes de la phraforma; no dependen de una pkmfomm dehardware en especial. Entonces, los cdigos de bytes de java son portables: es decir, se pueden ejecutarbs r:n`mnos cdigos de bytes en cualquier plaralbrma que contenga una]VM que comprenda h versinde java en la que se compihron los cdigos de bytes sin necesidad de volver a compilar elcdigo fuente.I.aIVM se invoca mediante el comando java. Porejemplo, paraejecutar unaaplimein en java llamadaB1 enverrl do, debe escribir el comando

    java Bienvenido

    en una ventanade comandos para invocar la]VM,que asu ver inicia los pasos necesarios paraejecutar laaplicacin. Esto comienza la fase 3.

    E123: Ginger rrprgrnma en memoriaEn la fase 3, HIVM coloca el programa en memoria para ejecutarlo; a esto se le conoce como cargar(figura 1.8). El cargador de clases roma los archivos .class que contienen los cdigos de bytes delprograma y los transfiere a la memoria principaL El cargador de chses tambin carga cualquiera de losarchivos .class que su programa utilice, y que sem proporcionados por java: Puede cargar los archi-vos .cass desde un disco ensusistemao atravs de una red (como la desu universidad local ola redde la empresa, o incluso desde Internet).

    Mernonhprincipal

    mi 1; cup mdnrdrdans-El cargador de clases

    n lee los archivos .dassr que contienen cdigosp de bytes del disco

    .-. yoolota esos cdigosn de bytes en la memona.

    I

    Hg L8 I Entorno de desarrollo tipico dejavaz Fase de carga.

  • |.9 java y un tpico enwmo de desarrollo en java 2I

    .Firm-4: lbriracidn Jelcddrgode b_yu.rEn hfase, a rnedidaquese cargan lasclases, elvetioador de cdigosde bytesexaminasus cdigosde bytes para asegurar quesean vlidos y que no violen las restricciones de seguridad dejava (ligura 1.9).java implementa una estrecha seguridad para asegurar que los programas en java que llgn a travdelared no daensusarcl1ivososusistema(como podranhacerlo losvirusdecomputadoraylosgusanos).

    Mernoriar , j nriwl

    me 4: ve-nacion" .- El velcacbr de codigo

    de bytes torirrna quelodos los codigos debftes sean validos yno violen las restriccionesde seguridad de java.

    I

    Hg. l.9 | Entorno de desarrollo tipico dejava: ase de verificacin.

    su 5.- JamesEn la fase 5, la_[VM ejecuta hs cdigos de bytm del programa, realizando as las accionesporel mismo (figura 1.10). En las primeras versiones dejava, la]VM era tanslo un intrpretede cdigos& byte de java. Esto hacia que k mayora de los programas se ejecutaran con lentitud, ya que la IVMtenia que interpretar y ejecutar un cdigo de byte a h vez. Algunas arquitecturas de computadoras mo-dernas pueden ejecutar varias instruccions en Por lo generaL las_jVM actuales ejecutan cdigostk bytes medianoe una combinacin de h interpretacin y la denominada compilacin justo a tiempo{_]IT). En me procmo, la]VM analiza los cdigos de bytes a medida que se interpretan, en busm depunto: carisma: partesde los cdigos de bytesque seejecutan con frecuencia. Par-aestas partes, un compi-lador a tiempo (]'I'l"') (conocido como compilador Hotpot de java) traduce los cdigos de bytsal lenguaje mquina correspondiente a la computadora. Cuando la]`VM encuentra estas partes compila-

    lkrncria_ r Pf"P"

    , . . _ Eara q'eo.|rareIprograma.laJVMF 5' E"'" ;s'_j_|rr-g_|vt9 I' ' un es wing de we; y es empata

    ` ' 'justo a liempo' UIT):esdec|r.los traduce en un lenguaie que latomputadora pueda enlenrler.A medi que se q`ecua el programa.ecise la posibilidad de ox almatenehs valoresde los datos en lamemoria principal.

    1

    Hg I. I 0 | Entorno de desarrollo tpico de java: fase de ejecucin.

  • 22 Captulo I Introduccin alas computadoras y a Java

    das de nuevo, se ejecuta el cdigo en lenguaje mquina, que es ms rpido. Por ende, los programas enjava en rulidad pasan por do: fases de compilacin: una en la cual el cdigo fuente se traduce acdigo debytes (para tener portabilidad a travs de las ]VM en distintas plataformas computacionales) y otra en laque, durante la ejecucin, los cdigos de bytes se traducen en lenguaje mquina para la computadoraactual en la que se ejecuta el programa.

    B-blemas quepuedeu ocurrir en tiempo de ejecucinFs probable que los programas no mcionen la primera vez. Cada una de las litses anteriores puede fallar,debido adiversos errores que dacribiremos en este texto. Por ejemplo, un programa en ejecucin podraintentar una divisin entre cero (una operacin ilegal para la aritmtica con nmeros enteros en java).Esto hara que el programa dejava imprimiera un mensaje de error. Si esto ocurre, tendra que regrmar ala liise de edicin, hacer las correcciones necesarias y proseguir con las fases restantes de nuevo, parade-terminar que las correocioms hayan resuelto el(los) prol)lema(s) la mayora de los programas enjava reciben o producen datos. Cuando decimos que un programa muestra un mensaje, por lo generalqueremos decir que aparece en la pantalla de su computadora. Los mensajts y otros datos pueden enviar-se a otros dispositivos, como los discos y las impresoras, o incluso a una red para transmitirlos a otrascomputadorasl.

    Error comn de programacin I.I Isn-ram, mnwhvnenmamcmnrnemdaquxqfemtunprvgwnmde

    nnsneraqueaemnfermrrsrelesfhmaerforesen Il`nnpo'ecm:`d1r.Latenm'I:imles en de gieccidll Iman que las progrnnlnr ltrmnm de inmediato. .fnlnserraclieadiiensunudjb. L0.n11rens0faal:ersls'enod'g'e:uenp:rnr:enmlwpmgrmnrgf:aur:emurmir:ar'mtm6.rg'0, laqueamenudprduarrsuimdslnmrmrrox.

    I. I 0 Prueba de una aplicacin en javaEn esta seccin, ejecutar su primera aplimcin en java e interactuar- con ella. Para empezar, ejecutaruna aplicacin de ATM, la cual simula las transacciones que se llevan a cabo al utilizar una mquina decajero automtico, o ATM (por ejemplo, retirar dinero, rmlizar depsitos y verilicar los saldos de hscuentas). Aprender acreat esta aplicacin en el ejemplo prctico qodmmlotientado aobjetos que se in-cluye en los captulos 12 y 13. Para los nes de estaseccin vamos a suponer que est utilimndo MicrosoftWindows."

    En los siguiente pasos, ejecutar la aplicacin y realimr varias transaccionm. Los elementos y lamcionalidad que podemos ver en esta aplicacin son tipicos de lo que aprender a programar en estebro [Nam utilizamos firen tes para diferenciar las caractersticas que se ven en una pantalla (por ejem-plo. el Sinbolo del sistema) y los elementos que no se relacionan de manera directa con una pantalla.Nuestraconvencin es enfatizar las caractersticas de la pantallacomo los ttulos ymens (por ejemplo,el men Archivo) en una iente I-Iolvetlce sana-aodfen semi-negritas, y enfatizar los elementos que noson de la pantalla, como los nombra de archivo o los datos de entrada (como Nombl'ePrograma. j ava)en una rente Lucida sans-ser f. Como tal vez ya se haya dado cuenta, la ocurrencia de definicin decada trmino en el texto se establece en En las figuras en esta seccin, resaltamos en una pan-talla gris claro la entrada del usuario requerida por cada paso y sealamos las partes importantes de la

    ll En mm. de*lte1.co||/books/jI1tp9/. oeoernos una versin en Linux de esta prueba. Tambin oeoernos vnculos a videosquele ayudarn a empaar a con varios entornos de duarrollo integrados populars (IDE), como el Kit de desarmllode java SE 6 parawindows, el SKI) de Eclipse paraWindows, NetBeans, jGRASP. Drjava, Blue] y rJ editor de te:tto'l`stPadpara Windmn.

  • |.|0 Prueba de una aplicacin en java 23

    aplicacin. Para aumentar la visibilidad de estas caractersticas, modicamos el color de fondo de lasventanas del Sknbolo del sistema a blanco y el color de las letras a negroi. sta m una versin simpleque consiste de texto solamente. Ms adelante en el libro, aprender las tcnicas para redisear esteejemplo mediante el uso de las tcnicas de GUI (interfaz gr-ca de usuario).

    1. Revisa su La la seccin Antes de empezar este libro para confirmar que hayainstalado java de manera apropiada en su computadora, y copiado los ejemplos del libro ensu disco duro.

    2. completa. Abra unaventana Snbolo del sistema. Paraello, puedeselec-cionar Inicio | Todos los pogramss [Accesorios linbolo del sistema. Par-ammbiar aldirectnrode la aplicacin del ATM, escriba cd C:\ej| emp'los\cap01\ATH y despus oprima Intro (gura1.11). .EJ comando cdse utiliza para cambiar de direcmrio.

    Uso del comando ctlpsra Lbicatin del archivo de Is aplicacinambiu de drecm rio del cjero automticc (RTM)

    i ' ' I || I|

    :\cd c:\eX-iIB1ss\th0L\A1N l:\ex@'l es\ch01\ATH :J

    Hg. I .I 1 | Abrir una ventana Smbclodsl sistema en Windows XP y cambiar de directorio.

    3. genere la IMM Escriba el comando java Ejempovract-coA11| y oprimaIntro (figura 1.12). Recuerde que el comando java, seguido del nombre del archivo _ c1 ass dela aplicacin (en este caso, Ej empl OP racti COATM), ejecuta El aplimcin. Si mpecitamos laextensin _ c'I ass al usar el comando java se produce un error [Notre los comandos en javasonsensiblm a mayscuhslrninscuhs. Es importante escribir el nombre de esta aplimcin con las|etrasA,TyM rnayscubsen "A'I`M",una letraE rnaysculaen Ejplo y una letraP ma-ysculacn "Practico". De lo contrario, la aplicacin no se ejecutar] Si recibe el mensaje deetrorException 'In thread mai n" java . 'Iang .NOC1 assDefFoundError : Ej e|np1oP racti coATM",entoncs su sistema tiene un problema con CLASSPATH. Consulte la seccin Antm de ernpaareste libro paraobtener instrucciones acerca de cmo corregir este problema.

    fe .-.lilll:\cd C:\exq`les\d'|01\ATM El

    :\n-p1s\h01\A11-ijava Acuostudy _]

    Fig. I.I 2 | Uso del comando java para ejecutar la aplicacin del ATM.

    4. Ertra un minero de camu. Cuando la aplicacin se ejecuta por primera vez, muestrael mensaje |B'ienven1do|" y le pide un nmero de cuenta. Escriba 12345 en el indicador"Escri ba su nunero de cuentan" (gura 1.13) y oprima bum.

  • 24 Captulo I Introduccin a las computadoras y a java

    Nbnsje de bienvenida del ATM indicador para introducir el nmero de cuenta

    hi_? aTIjav Altasetudy jlcolel

    lease enter your account nudser: 12345 -J

    Hg. I.I 3 | La aplicacin pide al usuario un nmero de cuenta.

    5. Escribe un NH! Una ver que introduzca un nmero de cuenta vlido, la aplicacin mostrarel indicador Esc ri ba su NIP:". Escriba $4321 como su NIP (Nmero de IdentificacinPersonal) vlido y oprima Intro. A continuacin aparecer el rnen principal del ATM, quecontiene una lista de opciones (figura 1.14). En el capitulo 14 le mostraremos cmo puedeintroducir un NIP en forma privada mediante el uso de un objeto JPassrnordF1e1d.

    Introduzca un NIF vlido Men principal ATM

    t. . _ _ _ ,_ E___ I HI___.- cone ___ jlease enter your countntrdrer: 12345

    nter your PIN: 54321an menu: ~

    - vien ly baunee- uritbdran cash- Deposit funds- Exiter a choice: I

    'rf-

    Iig. I. I 4 [ El usuario escribe un nmero NIPvlido yaparece el men principal de la aplicacin del HTM.

    6.

    7.

    Revia decido de la camera. Seleccione la opcin 1, "Ver mi Saldo del men del ATM (fr-gura 1.15). Acontinuacinlaaplicacinmostrardosnrneros: Sa`I do disp-on1b`le(S1 ,000.00)y Saldo total ($1 , 200.00). El saldo dkponibles la mximacantidadde dinero en su cuenta,disponible para retirarla en un momento dado. En algunos casos, ciertos fondos como los de-psitos recientes, no estan disponiblm de inmediato para que el usuario pueda retirarlos, porlo que el saldo disponible puede ser menor que el saldo total, como en este caso. Despus demostrar la informacin de los saldos de la cuenta, se vuelve a mostrar el men principal de laaplicacin.

    krenno de la cuenta. Seleccione h opcin 2, Reti rar efectivo", del men de h apli-cacin. A continuacin aparecer (figura 1.16) una listade montos en dhres (por ejemplo: 20,40, 60, 100 y 200). Tambin tendr laoportunidad de cancelar la transaccin y regresar al menprincipal. Retire $100 seleccionando la opcin 4. La aplicacin mostrar el mensaje "Tone suefectivo ahora"y regresar-al men principal. [Nora.- por desgracia, estaaplimin slo .timulaelcomportamiento de un verdadero ATM, por lo cual no dispensa efectivo en realidadl.

  • |.l0 Prueba de una aplicacin en java 25

    hiormacion del saldo de la cuenta

    ; .|g|r|nur a -ice: LILalmce Information:- Avaabie balance:- Total balance: ssln Ienu:- view Iy baance- irithdrarr cash

    3 - Degosit funda' EX!!

    er a cho-ice: I

    Fig. I.I 5 I La aplicacin del HTM muestra la informacin del saldo de la cuenta del usuario.

    Men de retira del ATM

    Ki -|n|II|nter a c 1:1: _]

    'tlvdrar`| Menu' '_'- szo- sw lia3 - $60

    - S1005 - S200 _

    - Cance i:ransac1:1onQ a wthkna Dount: 4

    Please take your cash now.

    in new:- View Iy halnce- irithdraw cash

    3 - Degosit funds- Exiter a choice: _v_|

    Hg. I.I 6 I Se retira el dinero de la cuenta y la aplicacin regnzsa al men piincipal.

    8.

    9.

    10.

    Cournu qual: inmudn dela cuestan bcyactualisdo. En el men principal, se-leccione la opcin 1 de nuevo para ver el saldo actual de su cuenta (figura 1.17). Obsenre queanto el saldo disponible como el saldo total se han actualizado para reejar su transaccinde retiro.

    .lalim la trnnman. Para naliur su smin actual en el ATM, seleccione la opcin 4,"Sa'I1r" del men principal (gura 1.18.) El ATM saldr del sistema y mostrar un mensajede al usuario. A ooncinuarzin, la aplimcn regrsar a su indicador original, pi-diendo el nmero de cuenca delsiguienre usuario.

    Salga de fa qlicain defA?|:_y cierre la ventosa Slrrlioio doi alalnma. La mayora de lasaplicaciones cuentan con unaopciu para salir y regresar al directorio del Srrbolo del tlthlnadesde el cual me ejecut la aplicacin. Un ATM ral no proporciona al usuario la opcin deapagar la ruquina ATM. En vez de ello, cuando el usuario ha completado todas las causas-ciones deseadas y elige la opcin del men para salir, elATM se reinicia y muestra un india-dor para el nmero de cuenta del siguiente usuario. Como se muestra en la figura 1.18, la

  • Captulo I Introduccin a las computadoras y a java

    nter a 1ce: IL 1 f Conlirmadn de la informacin actualizada del saldo _| :c'|i;1:rim 5900,00 de la cuerta despus de la transaccin de retiro.- Total balance: S1.1D0.00sin genu:

    - View uy baiance- nthdren cash- Degosit 'Funds- Exit

    `G__"_-1'

    nter a choice: I

    Hg I.I7 | Verificacin delnuevosaldo.

    Llu; ' .*_' l mm

    rvter 1 c 1ce:

    - xiting the system..

    you! Goodbyel NErIq'e1hdBpetIdIde|HTM

    =l="=! naaa-la pa-i peinar ammlease enter your account number:- decuenta dels`guienbe usmrio I

    Hg I.I I | Finalizacin de una sesin de transacciones con el ATM.

    aplicacin del ATM se comporta de manera similar. Al elegir la opcin del men para salir.slo se termina la smin del usuario actual con el ATM, no roda laaplicacin completa. Parasalir realmente dela aplicacin del ATM, haga clic en el botn de cerrar (x) en la esquina su-perior derecha de la ventana Slfrbolo del slthoma. A1 cerrar la ventana, la aplicacin terminasu ejecucin.

    I I I Web 2.0: Las redes socialesliteralmente, la Web cobr fuerza a mediados de la dcada de 1990, pero surgieron tiempos dificiles aprincipios del ao 2000, debido al daplcme econmico de punto com. Al rmurgimemn que empezalrededor de 2004, se le conoce como Web 2.0. A Google se leoonsidera en muchas partes como laoom-palacaracrersrica de Web 2.0. Algunas otras compaas con caractersticas de Web 2.0 son: YouTube(sitio para compartir videos), FaceBook (red social), Twitter (microblogs), Groupon (comercio social),Foursquare (reportes o check-insmvils), Salmforce (software de negocios quese ofrececomo serviciosen lnea), Craigslist (listados gratuitos de anuncios clasificados), Flickr (sido para compartir fotos), Se-cond Life (un mundo virtual), Skype (telefona por Internet) y Wikipedia (una enciclopedia en lineagratuita).

    GoogleB1 1996, los candidatos a un doctorado en ciencias computacionales de Stanford, Larry Page y SergeyBrin, empezaron acolaborar en un nuevo motor de bsqueda. En 1997 le cambiaron el nombre a Goo-gle con base en el trmino matemtico grol(en ingls, googol), una cantidad representada por el n-mero uno seguido de 100 ceros (o l0""): un nmero de un tamao asombroso. La habilidad deGoogle para devolver resultados de bsquedas con extrema prechin le ayud aconvertirsecon rapidezen el motor de bsqueda ms utilizado, ademas deser uno de los sitios Web ms populares en el mundo.

  • l.|| Web 2.0: Las redes sociales 21

    Google continasiendo un innovador en hs tecnologas de bsqueda. Por ejemplo, Google Goggles5 una fascinante aplicacin mvil (disponible en Android e iPi1one) que permite al usuario rmlirar unabsqueda, con la novedad de que utiliza una fotograa en vez de tuto. Usted slo tiene que tomar fo-mgraas de puntos de referencia, libros (cubiertas o cdigos de barras), logotipos, arte o etiquetas debotellas de vino, y Google Gcggles escanm la fotograa para devolver los resultados de la bsqueda.'Tambin puede tornar una forograa de texto (por ejemplo, el men de un restaurante o un anuncio)yGoogle Gogles lo traducirpor usted.

    Smnror Weby mnrbupr

    Ajax

    Fn este libro incluimos un tratamiento detallado sobre los serviciosWeb (capitulo 31 ) y presentamos lanueva metodologa de drmrrollo de aplicacionu conocida como marlvupr, en la que puede desarrollarcon rapidez aplicaciones poderosas e intrigantes, al oombinarservicios Web complementarios (a menu-do gratuitos) y otras formas de fuents de informacin (figura 1.19). Uno de los primeros mashupsfue ww. housingnaps .con, que combina al instante los listados de bienes races proporcionados por\nvu.craigs1lst.org con las capacidad@ de generacin de mapas de Guage Maps para ofrecer mapasque muestren las ubicaciones de los apartamentos en renta dentro de cierta rea.

    fuentedeservicios Web Cmo se utiizanGoogle Maps Servicios de mapasFacebook Redee sochlerFour-square Reports (chedt-ios) mvilesLinkedln Redes sociales para nego-dosYouTube Bsquedas de videoTwitter Microblop

    Comercio socialRenta de pelculasSubas-las en IneernetEnciclopedia colaborativa

    55*Radio por InnernerCompra de libros yonos artculosAdminisuaein delas relaciones con el diente (CRM)Telefona por InternetBsqueda(hmparr fotografiasPrecios de biena races

    BsquedaClima

    GrnuponNetirteBayWikipediaPayPalLascfmAmazon eCommerceSalesforoecorn

    smM icrosofr BingFlickrZillowYahoo SouthWmtberllug

    Fig. l.I 9 | Algunos servicios Web populares [mu _ programnabl eweb. con/api s/di rec tory/`l '?sort-mashu ps).

    Aiaxes una de las tecnologas de software mas importantes de Web 2.0, ya que ayuda a las aplicacionesbasadas en Internet a funcionar como las aplicaciones de meritorio; una tarea dicil, dado que dichas

  • 28 Capitulo I Introduccin a las computadoras y a lava

    aplicaciones sufren de retrasos en la transmisin, a medida que los datos se intercambian entre su compu-tadora y las computadoras servidores en Internet. Mediante el uso de Ajax, las aplicaciones comoGoogle Maps han logrado un desempeo excelente, adems de que su aparienciavisual se asemeja a lasaplicaciones de escritorio. Aunque no hablaremos sobre la programacin pura con Ajax en este libro(que es bastante compleja), en el captulo 30 le mostraremos cmo crear aplicaciones habiii tadas paraAjax mediante el uso de los componentes dejavaServer Faces (ISP) habilitados para Ajax.

    /bhconer reciclarDurante los ltimos aos se ha producido un aumento considerableen el nmero de aplicaciones socia-les en Web. An y cuando la industria de la computacin ya alcanz la madura, estos sitios fireroncapaces de tener un xito fenomenal en un periodo de tiempo relativamente corto. La Figura 1.20 ana-lza unas cuantas de las aplicaciones sociales que estn generando un impacto.

    Facebook Facebook inici desde un domritorio en I-larvarden el ao 2004, graciasslos alumnos Mall: Zuclterberg, Chris Hughes, Dustin Mosltovlz y EduardoSnverin, yalronr tiene un valor estimado de 70 mil millones de dlares.Para enero de 2011, Facebook era el sirio ms activo en Internet con msde 600 millonesde usuarios --casi 9% de la poblacin mundial--, quienesinvierten 700 mil millones de minutos en Facebook al mes. Segn su rasade crecimiento actual (cerca del 5% mensual), en 2012 Facebook llera rnil millones de usuarios de los dos mil millones de Internet! La actividaden este sido lo hace muy atractivo para los dcnarmlhdoresde aplicaciones.Cada dia, los usuariosde Facebook instalan ms de 20 millonesde aplicaciones(http: //uuu. facebook-con/press/info.php?stat'l stlts).

    Twitter jack Dorsey, Evan Williams e Isaac Bit Stone lrndaron Twitteren 2006:todo desde lacornpola de podcasts, Odeo. Twitter revolucion los rricmbgr.Los usuarios publican "rvveers': mensajes de hasta 140 caracteres de longitud.Se publicancerca de 95 millones de tweems diario (twitter. cul/about).Usted puede seguir los rweets de amigos, artistas, negocios, representantes delgobierno (incluso el ncsidenre de Estados Unidos, quien tiene 6.3 millonesde seguidores), etctera, 0 seguir rweeu del terna para darseguimiento anoticias, tendencias y mucho ms. Al momento dc escribiresre libro,1adyGaga tenia el mayor nmero de seguidores (ms de 7.7 millones).Tvvitterse convirti en el punto de orign para muchas noticias de ltimabora en todo el mundo.

    Groupon Groupon, un s`rr`cemmrr:'r`oss:r'1,l"uc lanzado porlindrcw Mason in 2008.Paraenerode 201! la compaia estaba valuada alrededorde los $15 rnilmillones con lo cual se convirti en h compaia con ms rapido crecimientohasta esa fecha! Ahora est disponible en cientosde mercados en todo elmundo. Groupon muestra una oferta diaria en cada mercado para restaurantes,vendedores al detalle, servicios, atrincioncsy dems. Las ofertas se xtivanslo hasta que se inscribe el minimo nmero de personas requeridas paracomprar el producto o servicio. Si usted se inscribe en una oferta ytodavano curnplecon el mnimo, talvezsevea tentado aclaravisoa ou-as personassobre esa oferta porcorreo electrnico, Facebook, Twitter, etctera. Si la ofertano cumple con el minimo de ventas. se cancela. Una de las ofertas de Grouponmsexitosasa nivel nacional a Iafeclra fue un cutiftcado de $50 dlares enmercancia de una importante compaa de ropa a slo $25. Se vendieron msde 440,000 cupones en un solo dia.

    Fg. |.20 I Aplicaciones sociales(parte I de 2).

  • l.| 2 Tecnologas de software

    Compaia DucripcinFoursquare Pousquare --creada en 2009 por Dennis Cmwleyy Nnveen Selvedunti-

    es una nplimdn pam tmln: reportan (oeclr-im) mviles, la cul! le penninenotiosrn sm amigos los lugar-es que visies. Puede detmrgeris aplicacin ensu telfono nneligmne yvinculath mn sus cumms de Fsmbook y Twmer. demodo que nu amigos puedan seguido desdevariasplatafonnas. Si no tieneun raelfono innelinm. puede leporeatse medium un menajecle tramo.Faursqusu-e utiliza el ser-vicio GPS para denerminsr su ubicacin es-neu.1.asempmernsusan Foursquate para emriarofettasa los usuarios que seencuentren oerm. Foutsquare sus opemcionesen marzo de 2009yyaareutamnmsdernillonesdettsrrarioseneodoelmundo.

    Skype Skypeaunproducno desoftwztequelepeuninemelizarlhmadaidevozydevidtn (Ia mayoria son gratuitas): travs de luntmct, medianee el uso de unanemologa lhmath WIP (Wamba IP; IP se refiere: "Protocolo delnaernef).Nilda Zennstnm yDane]anus Friiis mdamn Skype en 2003. Dosaliosdapuds. vendieron la compaia a eBay por$16 mil millones.

    YouTube YouTube esun sido pum compartir videos quese fund en 2005.Antsdeque transcurriers un ao, Google compr la compaa por $1.65 mil milions.En la actualidad, YouTube es responabledel 10% del um soul en Internet(uuur.rrebprone\rs . con/topnefrrs/2010/04/16/farnebook-and-you'tubn-ger:-tzlmrlost-busi ness-i nternet-trsfi e). Menos de un ao despus de la liberacindel Phone BGS de Apple-elprimer modelo del Phone en ofrecervideo-lss transfuencias desde dispositivos mviles a YouTube aumentaron un 400%(rm-hypebot - con/hwebot/2009/06/voucubs-rsprw11oo-jurp- 1 rr-nobe-video.ht).

    Hg. I.20 I Aplicaciones sociales (parte 2 de 2).

    I I2 Tecnologas de softwarela gum 1.21 muem-auna lktade palabras de moda que escucharen laoomunidad de clsarmlio desoftware. Creamos Centros de Recursos sobre h mayora de esuus temas, y hay muchos por vemt

    Tecnologa DescripcinSnftwateigii Elthnuollodgildesownreesunooujunwdemenodologlasquetmmnde

    implementatsoftwste con ms rapidez y menosrecuntrs quelas metodologaseneeriores. Visiee losstiosdeAgileAlliance(vrrru.ag11ee11ienee .of~g] yAgileNlaniferm (rrurr.agHerlanIfesm.org). Tambien puede visimrel sitio en espaolmmege-sps1n.eon.

    Refaemtmddn Iallflcustiznridnimplita tefonnularelcdgopamlncerlomsdamydlde mantener, al tiempo quese preserva su Es muy utilizado enlas meeodolgll de desamollo gil. Muchos IDE cnntienen lrm'rn'n|mrJ:'$alrsa:|`drr inegradespera reeliurlamayorpereedei pu-ooesode refectorizs-cin de man aummtim.

    Patrones Los petmneede diseo son arquneeturas probadas pen oonsetuitsoftwarede diseo otienmdo a objems ratibley que pueda lmnnenerse. El mmpo de los patmne: de

    diseo una deenumetarn los patrones r-ecu.ner-ames. ydealeamte iosdiseadoresdesoftwatepsnque Insreutiliomypuedan desanollutm softwaredemejormlidad con menos tiempo, dineto y esfuerzo. En el apndieeQarulmremoslospotmna de diseo dejara.

    Hg. I.2I | Tecnologas de software(parte I de2).

  • r- .Capitulo I Introduccin a las computadoras y a java

    Tecnologa DescripcinLAMP MySQLuunsisuumdeadminisu1ddndebesesdedaeosdeo6digoreneeebierto.

    PHPeedlengtnjede'xa1mdasdemmandosddlsdosavidordeodigarmtebierno mspopular-pe.r:eldessnoliodespiio|cionetW`eb. IAMPesunser6nin'ro

    fuemseabierm quellsilnmuehosduano-lideres en iaucecindenplicaciones Web: se reeren Linux, Apmise, MySQL yPHP (o Pedo Pytl:on;ottosdosienguajadeseurenr:issdemu1andos}.

    Software mm Por lo gener-el, elsowaresiernpre se ha vino oomo un producen; la mayora anun servicio se ofrece deesm forma. Para eiecumtum aplicacin. hayque mmpmda a un($1.15) distribuidor desowale. Despus la inslalanrosen laoomputndora ylo ejecutamos

    mando m nom;-io. Ameddz que aperemn nuevas versiones, actualizamos elnfrwam, lo cual gen con frecuencia un gsm considerable. Esne proceso puedeserioornodopemlasorganineiones oondeceaasde miles desisnerms, alos quesedebedarmeneenimienno en una diversa seleccin de equipo de ompuno. En elSoflwnreoomoun servicio (SeeS),steejeeumen servidores ubimdoeenclnlquierpomede Innemet. Quealsaaetualimdos, loscliemes en nodoel mundoven lasnuevnscnpneidrtdes sin neoesidaddeunn instalacin ioceL Podemosamederal servido a nnvsde un navegador. Los mvegedores son bnseanneportables, por lo que podemos ver las rnisrnns apliosdones en una amplia variedadde computadoras desde eualquierperne del mundo. Salmfomemm, Google,Microsoft Oioe Live yW'mdows Live ofrecen SaaS.

    Phmfonna I-1Pllllfnrmneom0nnIe'icio(PenS)pmveeunap|atafommdeompumoomo un para desmollnry ejecutan- aplicaciones oomo un servicio a nnv deWeb, en vezeervido(SaS) densmlarlasher-rsmmr:uenn1mmpumdn1=.lnsproveedotr=dePaaSms

    importance: son: Google App Engine, Amazon EC2, Bungee Labs, entre otros.Computacin SHS y PaaS son ejemplos de onunpnueidn en llnnbeen donde elsnwrue, lasen la nube nmfomms y le infraestructura (por ejemplo, el poder de prooessmienno y el

    dmar:.ena|nienmo)seaIoj