Академический Документы
Профессиональный Документы
Культура Документы
2013
Introduccin a Java
Conceptos Bsicos
Que es Java
Java es un !engua"e de #rogra$aci%n &rientado a &'"etos desarrollado por (un )icros*ste$s. Java es una )a+uina ,irtual -entorno de e"ecuci%n. +ue puede ser integrada en los navegadores /e' -/e' 'ro/sers e"e$0 1etscape2 Internet E3plorer . * en diversos (iste$as &perativos. Java es un con"unto de Clases2 !i'rer4as estandari5adas -pa+uetes. 6#Is2 +ue per$iten i$ple$entar diversas 7uncionalidades.
!a plata7or$a "ava es 7unda$ental$ente una nueva 7or$a de co$putaci%n2 'asada en el poder de las redes * la idea +ue el $is$o so7t/are pueda e"ecutarse en $uc8os * di7erentes tipos de co$putadores * otros dispositivos -#D62 tel97onos celulares2 etc.. . Con la tecnolog4a Java2 pode$os usar las $is$as aplicaciones en cual+uier clase de $a+uina0 una #C2 una )acintos82 una co$putadora de red2 o en tecnolog4as nuevas co$o los celulares con acceso a internet.
Caracter4sticas #rincipales
(encillo &rientado a o'"etos Distri'uido Interpretado :o'usto (eguro 6r+uitectura neutra #orta'le 6ltas prestaciones )ultit8read -$ulti8ilo. Din$ico
!a plata7or$a Java
!a plata7or$a de Java tiene dos Co$ponentes0 )a+uina ,irtual de Java Inter7a5 de #rogra$aci%n de 6plicaciones ; Java-6#I. ; ; ; ; ; ;
Java es co$pilado a '*te<codes para ser e"ecutado en la Java ,irtual )ac8ine -J,).. !a ,irtual )ac8ine es el procesador so're el cual el '*te<code de Java se e"ecuta. Este es un con"unto de instrucciones +ue el interprete $ane"a. !a ,irtual )ac8ine es integrada dentro de otros a$'ientes2 e"$0 /e' 'ro/sers * siste$as operativos.
Java 6#I
Est con7or$ado por un con"unto de clases +ue nos per$ite o'tener 7uncionalidades espec4>cas en el desarrollo de nuestras aplicaciones. &rgani5ada a trav9s de $%dulos +ue son incre$entales. #ueden ser una 6#I estndar o e3tendidas.
Que puede 8acer la tecnolog4a "ava El prop%sito general de Java es proveer una plata7or$a
de so7t/are de alto nivel. Java o7rece las caracter4sticas siguientes0 Herra ienta! de De!arro""o# ?erra$ientas para co$pilar2 e"ecutar2 $onitorear2 depurar2 * docu$entar aplicaciones. Inter$ace de Pro%ra acin de A&"icacione! 'API(# !as 6#Is proporcionan las 7uncionalidades Bsicas de Java. Tecno"o%)a de De!&"ie%ue# Java #roporciona )ecanis$os para el despliegue de las aplicaciones a los usuarios >nales. -Java @e' (tart2 Java #lug<In. *it de Herra ienta! &ara "a! GUI# #ara la creaci%n de ABI so>sticadas se puede usar (/ing * Java 2D.
Cipos de 6rc8ivo
-ava 0 es la e3tensi%n de los arc8ivos 7uente del lengua"e "ava2 e"e$. ?ello@orld6pp."ava 2 )*6pplet."ava. c"a!! . el resultado de co$pilar un arc8ivo 7uente "ava es un arc8ivo en '*te<code con e3tensi%n c"a!!2 e"e$. ?ello@orld6pp.class2 )*6pplet.class. El co$ando usado para co$pilar los ar8ivos con e3tensi%n "ava es -avac * para su e"ecuci%n el co$ando -ava +ue vienen incluidos en el JDD -Java Develop$ent Dit. de (un )icros*ste$s. -ar/0i& . las clases desarrolladas en "ava suelen por lo general guardarse en estos tipos
&rgani5aci%n
Pa1uete! 'Pac2a%e!( . son un grupo o li'rer4a de clases desarrolladas en "ava +ue se utili5an para algo espec4>co. !as principales clases de "ava son las siguientes -incluidas en el JDD. 0 "ava.applet Desarrollo de 6pplets. "ava.a/t 6'stract @indo/ CoolEit. "ava.a/t.event (oporte * procesa$iento de eventos. "ava.s/ing (oporte para co$ponentes gr>cos de Java. "ava.s/ing.event (oporte * procesa$iento de eventos para co$ponentes s/ing. "ava.io InputFoutput strea$s. "ava.lang Clases 7unda$entales del lengua"e J6,6. "ava.net (oporte para net/orEing.
&rgani5aci%n
C"a!e! . co$o J6,6 es un lengua"e && -&rientado a o'"etos. tipico su estructura esta 'asada en clases. Bna clase es una plantilla +ue de>ne las caracter4sticas de un o'"eto una ve5 +ue es instanciado. !a 8erencia * el nivel de acceso entre clases son soportados por J6,6.
&rgani5aci%n
M3todo! . los $9todos en J6,6 co$o en cual+uier lengua"e orientado a o'"etos se utili5an para reali5ar alguna acci%n espec4>ca2 estos se de>nen dentro de la clase * asi co$o las clases ta$'i9n poseen niveles de acceso. !os $9todos pueden reci'ir par$etros * retornar algun valor.
Teor)a de O,-eto!#
&rientaci%n a &'"etos
&rientaci%n a o'"etos
4Con-unto de di!ci&"ina! 1ue de!arro""an 5 ode"i0an !o$t6are 1ue $aci"itan "a con!truccin de !i!te a! a &artir de co &onente!#7
(ie$pre +ue algo se constru*e2 se reali5an di'u"os +ue descri'en su co$porta$iento * su apariencia. !os di'u"os tra'a"an co$o una especi>caci%n de c%$o +uere$os +ue se vea el producto ter$inado.
!os atri'utos de una clase no de'er4an ser $anipula'les directa$ente por el resto de o'"etos
iento
Reglas de visibilidad Atributo pblico : Integer Atributo protegido : Integer Atributo privado : Integer "Operacin pblica"() "Operacin protegida"() "Operacin privada"()
E"e$plo0
Po"i
or<!
#ropiedad +ue indica la posi'ilidad +ue una entidad to$e diversas 7or$as #osi'ilidad de desencadenar operaciones distintas en respuesta a un $is$o $ensa"e
Len dormir()
Dormir() { sobre el vientre }
Oso dormir()
Dormir() { sobrela espalda }
Tigre dormir()
Dormir() { en un rbol }
Clasi>caci%n
El $undo real puede ser visto desde a'stracciones di7erentes -su'"etividad. )ecanis$os de a'stracci%n0 Clasi>caci%n F Instanciaci%n Co$posici%n F Desco$posici%n 6grupaci%n F Individuali5aci%n Especiali5aci%n F Aenerali5aci%n !a clasi>caci%n es uno de los $ecanis$os de a'stracci%n $s utili5ados. Bna a'stracci%n trata de $ostrar las propiedades * co$porta$ientos de un o'"eto +ue lo di7erencia de otro.
Clases
)odela una a'stracci%n de>niendo propiedades * co$porta$ientos para los o'"etos representados. !a clase de>ne el $'ito de de>nici%n de un con"unto de o'"etos. Cada o'"eto pertenece a una clase. !os o'"etos se crean por instanciaci%n de las clases.
Clases
Pro&iedade! . 6tri'utos2 varia'les. Co &orta iento! . &peraciones2 $9todos. Contrato! . De>ne +u9 servicios proporc una clase. I &"e entacin . De>ne c%$o se proporciona los servicios en una clase.
De>nici%n de o'"eto
JEnte real o conceptual +ue posea caracter4sticas * co$porta$iento propios2 =nicos e incon7undi'lesK Es una instancia concreta de la a'stracci%n +ue representa la clase.
uan !9re"
#omputador
Identidad de un o'"eto
Cada o'"eto tiene una identidad =nica2 incluso si su estado es id9ntico al de otro o'"eto.
Identi>cador de un o'"eto
Caracter4sticas del Identi>cador0
Lnico * glo'al Deter$inado en el $o$ento de su creaci%n Es independiente de la locali5aci%n 74sica del o'"eto Es independiente de las propiedades del o'"eto
Caracter4sticas * Co$porta$iento
Caracter)!tica! -atri'utos.0 1o$'re Estatura Edad Co &orta iento -operaci%n.0 Ca$inar ?a'lar (altar
Co$porta$iento * Estado
Co &orta iento 6grupa las co$petencias de un o'"eto2 Conocido co$o &#E:6CIM1 Es consecuencia de un est4$ulo e3terno -$ensa"e. E"e$plo0 #render C#B E!tado :epresentado por los valores de los atri'utos E"e$plo0 #rendido2 apagado
Identi>cando o'"etos
I$agine$os +ue tene$os estacionado en nuestra coc8era un 6udi < 6N O.0 PQ0C, +uattro color a5ul +ue corre 8asta 2Q0 E$F8.
Marca $ Audi Modelo $ A% &'( )*(#+ quattro Color $ A"ul Velocidad M i!a $ ,*( -m./
Cuando a las caracter)!tica! del o'"eto le asigna$os valores deci$os +ue el o'"eto tiene e!tado!.
Co$unicaci%n
(iste$a G Con"unto de o'"etos aut%no$os * concurrentes +ue tra'a"an de $anera coordinada en la consecuci%n de un >n especi>co. Men!a-e Bnidad de co$unicaci%n entre o'"etos #ara +ue e3ista un co$porta$iento -&peraci%n. es necesario +ue e3ista un $ensa"e
Co$unicaci%n
&'"etos0 B)!
"n ob#eto
Otro ob#eto !s
A!ociacione!
:elaciones entre clases
Clases
Con"unto de o'"etos con caracter0sticas -atri'utos. * co$porta$ientos -operaciones. si$ilares.
C$A%&: 'ersona
:epresentaci%n B)!
Clases0 e"e$plo
Bna Cuenta Corriente +ue posee co$o caracter4stica Balance #uede reali5ar las siguientes operaciones Depositar Airar * Balance
!os enlaces entre de o'"etos pueden representarse entre las respectivas clases For$as de relaci%n entre clases0
6sociaci%n
!a asociaci%n per$ite asociar o'"etos +ue cola'oran entre si. Ca'e destacar +ue no es una relaci%n 7uerte2 es decir2 el tie$po de vida de un o'"eto no depende del otro. Bna asociaci%n es una a'stracci%n de la relaci%n e3istente en los enlaces entre los o'"etos "n enlace
"niv) de Murcia : "niversidad Antonio : &studiante
"niversidad Una asociacin &studiante
6sociaci%n
Especi>caci%n de $ultiplicidad -$4ni$a...$3i$a. 1 0..1 )..1 R 0..R 1..R Bno * s%lo uno Cero o uno Desde ) 8asta 1 -enteros naturales. Cero o $uc8os Cero o $uc8os Bno o $uc8os -al $enos uno.
6sociaci%n
E-e &"o Bn cliente puede tener asociadas $uc8as &rdenes de Co$pra2 en ca$'io una orden de co$pra solo puede tener asociado un cliente.
6sociaci%n
E-e &"o.
!arido casado-con !u#er
,)),))-
e!plea/a
#e(e Administra
,))-
e!pleado
Dependencia
!a relaci%n de Dependencia o ta$'i9n conocida co$o de instanciaci%n representa un tipo de relaci%n $u* particular2 en la +ue una clase es instanciada -su instanciaci%n es dependiente de otro o'"etoFclase.. (e denota por una Tec8a punteada.
Dependencia
El uso $s particular de este tipo de relaci%n es para denotar la dependencia +ue tiene una clase de otra2 co$o por e"e$plo una aplicaci%n gra>ca +ue instancia una ventana -la creaci%n del &'"eto ,entana esta condicionado a la instanciaci%n proveniente desde el o'"eto 6plicaci%n.0
6gregaci%n
!a agregaci%n representa una relaci%n parteUde entre o'"etos En B)! se proporciona una escasa caracteri5aci%n de la agregaci%n #uede ser caracteri5ada con precisi%n deter$inando las relaciones de co$porta$iento * estructura +ue e3isten entre el o'"eto agregado * cada uno de sus o'"etos co$ponentes
6gregaci%n
#ara $odelar o'"etos co$ple"os2 no 'astan los tipos de datos 'sicos +ue proveen los lengua"es -enteros2 reales * cadena de caracteres.. Cuando se re+uiere co$poner o'"etos +ue son instancias de clases de>nidas por el desarrollador de la aplicaci%n2 tene$os dos posi'ilidades0
6gregaci%n
Por =a"or. Es un tipo de relaci%n esttica2 en donde el tie$po de vida del o'"eto incluido esta condicionado por el tie$po de vida del +ue lo inclu*e. Este tipo de relaci%n es co$=n$ente lla$ada Co &o!icin -el &'"eto 'ase se constru*e a partir del o'"eto incluido2 es decir2 es VparteFtodoV.. Por Re$erencia. Es un tipo de relaci%n din$ica2 en donde el tie$po de vida del o'"eto incluido es independiente del +ue lo inclu*e. Este tipo de relaci%n es co$=n$ente lla$ada A%re%acin -el o'"eto 'ase utili5a al incluido para su 7unciona$iento..
6gregaci%n0 E"e$plo
Bn 6l$ac9n posee Clientes * Cuentas2 cuando se destru*e el &'"eto 6l$ac9n ta$'i9n son destruidos los o'"etos Cuenta asociados2 en ca$'io no son a7ectados los o'"etos Cliente asociados. !a co$posici%n se destaca por un ro$'o relleno. !a agregaci%n se destaca por un ro$'o transparente.
6gregaci%n0 E"e$plo
0indo1 scrollbar234 : %lider title : 5eader bod6 : 'anel
0indo1
-
scrollbar %lider
title 5eader
body
'anel
?erencia
Es un concepto +ue deter$ina +ue una clase2 +ue en adelante lla$are$os su'clase2 puede 8eredar -Je3tenderseK. de una =nica clase principal2 a la +ue lla$are$os superclase2 reci'iendo las varia'les * $9todos visi'les de la (uperclase -pu'lic * protected.. El concepto de 8erencia es la verdadera 'ase de la & el cual per$ite la reutili5aci%n de c%digo de 7or$a natural.
?erencia
Aenerali5aci%n
#er$ite gestionar la co$ple"idad $ediante un ordena$iento ta3on%$ico de clases (e o'tiene usando los $ecanis$os de a'stracci%n de Aenerali5aci%n *Fo Especiali5aci%n !a Aenerali5aci%n consiste en 7actori5ar las propiedades co$unes de un con"unto de clases en una clase $s general
Aenerali5aci%n
1o$'res usados0 clase padre < clase 8i"a. &tros no$'res0 superclase < su'clase2 clase 'ase < clase derivada !as su'clases 8eredan propiedades de sus clases padre2 es decir2 atri'utos * operaciones -* asociaciones. de la clase padre estn disponi'les en sus clases 8i"as
Aenerali5aci%n
+e/0culo
+ei/0culo Terrestre
+e/0culo A5reo
#oc/e
#amin
Avin
=elicptero
Aenerali5aci%n
8uncionando
>stropeado
:estricciones prede>nidas en B)!0 dis"unta < no dis"unta total -co$pleta. < parcial -inco$pleta.
... Aenerali5aci%n
!a noci%n de clase est pr%3i$a a la de con"unto Dada una clase2 pode$os ver el con"unto relativo a las instancias +ue posee o 'ien relativo a las propiedades de la clase Aenerali5aci%n * especiali5aci%n e3presan relaciones de inclusi%n entre con"untos
... Aenerali5aci%n
#articiona$iento del espacio de o'"etos GS Clasi>caci%n Esttica #articiona$iento del espacio de estados de los o'"etos GS Clasi>caci%n Din$ica En a$'os casos se reco$ienda considerar generali5acionesFespeciali5aciones dis"untas
... Aenerali5aci%n
Avin
=elicptero
... Aenerali5aci%n
8uncionando
>stropeado
... Aenerali5aci%n
estructura
Avin
=elicptero
(e presenta cuando una su'clase tiene $s de una superclase !a 8erencia $=ltiple de'e $ane"arse con precauci%n. 6lgunos pro'le$as son el conTicto de no$'re * el conTicto de precedencia (e reco$ienda un uso restringido * disciplinado de la 8erencia. Java * 6da YQ si$ple$ente no o7recen 8erencia $=ltiple
Z ?erencia )=ltiple
Bso disciplinado de la 8erencia $=ltiple0 clasi>caciones dis"untas con clases padre en 8o"as de "erar+u4as alternativas
;0pedo nro patas #on !elos cubertura #on !lumas cobertura cobertura #on >scamas Animal comida #arn0voro comida #uadr?pedo nro patas =erb0voro
#one<o
Diagra$a de Clases * Diagra$as de &'"etos pertenecen a dos vistas co$ple$entarias del $odelo Bn Diagra$a de Clases $uestra la a'stracci%n de una parte del do$inio Bn Diagra$a de &'"etos representa una situaci%n concreta del do$inio !as clases a'stractas no son instanciadas
Net,ean!
Inter7a5 de Desarrollo
///.net'eans.org
Qu9 es 1etBeans
1etBeans es un pro*ecto e3itoso de c%digo a'ierto con una gran 'ase de usuarios * una co$unidad en constante creci$iento. (un )icro(*ste$s 7und% el pro*ecto de c%digo a'ierto 1etBeans en "unio 2000 * contin=a siendo el patrocinador principal de los pro*ectos. 6l d4a de 8o* 8a* disponi'les dos productos0 el 1etBeans;IDE * 1etBeans #lat7or$.
1etBeans IDE
Es una 8erra$ienta para +ue los progra$adores puedan escri'ir2 co$pilar2 depurar * e"ecutar progra$as. Es un entorno de desarrollo * est escrito en Java pero puede servir para cual+uier otro lengua"e de progra$aci%n. E3iste ade$s un n=$ero i$portante de $%dulos para e3tender el 1etBeans;IDE. Es un producto li're * gratuito sin restricciones de uso.
1etBeans IDE
#anel de #ro*ecto. #anel de 6rc8ivos. #anel de (ervicios. Editor de C%digo. 1avegador. ,entana de (alida -output.. #aleta de Controles -(/ing2 6/t2 ?t$l.. #anel de #ropiedades.
Sinta>i! 5 Re$erencia
Estructura del !engua"e Java
O,-eto. (on usados para $odelar los o'"etos del $undo real +ue tienen un estado * un co$porta$iento. C"a!e. Es un #lano o prototipo de c%$o los o'"etos sern creados. Herencia. #rovee un poderoso * natural $ecanis$o para reutili5ar2 organi5ar * estructurar el (o7t/are. Inter$ace. Es el contrato entre una clase * el $undo e3terior2 para cu$plir los acuerdos del contrato. Pa1uete. Es un no$'re de espacio para
Estndares de #rogra$aci%n
Pa1uete!0 1o$'re =nico se escri'e todo en $in=sculas. C"a!e!0 1o$'res sustantivos siendo la pri$era letra de cada pala'ra con )a*=scula. Inter$ace!0 (i$ilar a de las Clases. M3todo!0 De'e co$en5ar con un ver'o en $in=scula * la pri$era letra de las siguientes pala'ras -di7erentes al ver'o. con $a*=scula. =aria,"e!0 !a pri$era letra con $in=scula2 las pala'ras internas e$pie5an con $a*=scula. Con!tante!0 De'en estar todas con $a*=sculas *
Identi>cadores
Caracteres Bnicode 0 1O 'its El pri$er carcter no puede ser un d4gito #ueden e$pe5ar con un su'ra*ado o un d%lar -U.-[. Java es Case<(ensitive 0 se distinguen $a*=scula de $in=sculas #ueden ser de cual+uier longitud. 1o puede ser una pala'ra reservada o -true2 7alse2null.
Clases
No ,ra iento -Estndar. Bsar el sustantivo singular !os no$'res de la clase de'en e$pe5ar con $a*=sculas 1o de'e usarse el su'ra*ado !os no$'res co$puestos se ponen "untos * la pri$era pala'ra se escri'ir con $a*=scula E"e$plo0 6lu$no2 (iste$aDe#ago
)odi>cadores de 6cceso
De>nen el grado de co$unicaci%n * visi'ilidad de los atri'utos * $9todos de ellos con el entorno2 estos son0 &u,"ic -H.0 Indica +ue el atri'uto ser visi'le tanto dentro co$o 7uera de la clase2 es decir2 es accsesi'le desde todos lados sin restricciones. &rivate -<.0 Indica +ue el atri'uto s%lo ser accesi'le desde dentro de la clase +ue lo declara -s%lo sus $9todos lo pueden acceder..
&rotected -\.0 Indica +ue el atri'uto es accesi'le desde cual+uier su'clase -tanto dentro co$o 7uera del pa+uete. * a todo $9todo dentro del pa+uete. Pac2a%e0 El ca$po es accesi'le a todos los $9todos dentro del pa+uete. Es el acceso por de7ecto.
SUBCLASE PAQUE E 7 7 7 7 7 O !OS
Clases 0 (inta3is
Sinta>i! . ]$odi>cadorR^ c"a!! _no$'reDeClaseS ]e>tend! _no$'reDeClaseS^ ]i &"e ent! _no$'reDeInter7aceRS^ W ### X Modi<cadore! . A,!tract. 1o se pueden instanciar o'"etos. (ola$ente una clase a'stracta puede declarar $9todos a'stractos. Fina". 1o per$ite su'clases. Pu,"ic. 6cceso general.
,aria'les
(inta3is 0
]$odi>cador^ _no$'reDeCipoS _no$'reDe,aria'leS ]G _iniciali5adorS^` 6dicional$ente a las declaraciones de 6cceso2 las varia'les pueden ser declaradas co$o0
(tatic .< ,aria'le de clase.-(olo e3iste un copia por clase con acceso co$partido entre todas las instancias de la $is$a.. Final .< Declara la varia'le co$o constante.
En caso de +ue sea una varia'le de tipo pri$itivo indica +ue el valor no podr ser ca$'iado. #ara o'"etos2 la re7erencia del $is$o no podr apuntar a un nuevo o'"eto2 pero el o'"eto aun es capa5 de ser $odi>cado.
Cipos #ri$itivos 0
#recisi%n
N 'its 1O 'its 32 'its OP 'its 1O 'its 32 'its OP 'its <
Declarar un varia'le de tipo o'"eto no crea un o'"eto2 solo una re7erencia al $is$o. !a pala'ra reservada ne6 8ace +ue el siste$a cree2 instancie * reserve la $e$oria para el nuevo o'"eto.
=aria,"e! Mie ,ro0 #uede ser declarada en cual+uier lugar de una clase2 $enos dentro de un $9todo. =aria,"e +oca"e!0 6+uellas declaradas dentro de un $9todo o dentro de un 'lo+ue de c%digo. Par? etro! de M3todo!0 #asan valores entre $9todos. Mane-adore! de E>ce&cione!0 (i$ilar al anterior2 salvo +ue son par$etros de una e3cepci%n. !as varia'les locales * las $ie$'ro pueden ser iniciali5adas cuando son declaradas0 s8ort tipode6siento G 0`
)9todos
(inta3is 0 ]$odi>cadorR^ _no$'reDeCipoS _no$'reDe)etodoS -]_argsRS^. ]t8ro/s _no$'reDeE3cepcionRS^ W ... X c ` 6dicional$ente a las declaraciones de 6cceso2 las varia'les pueden ser declaradas co$o0 (tatic )9todo de clase. 1o re+uiere de un o'"eto de la clase para su e"ecuci%n. (olo tiene acceso a ca$pos * )9todos d(tatice. 6'stract 1o i$ple$enta c%digo dentro de si2 sus su'clases de'en de i$ple$entarlo o declararse co$o da'stacte. Final 1o puede ser so'reescrito. 1ative Declara una re7erencia para un c%digo
Constructores
Es un tipo especial de $9todo +ue se e"ecuta al crear una nueva instancia de una clase. (inta3is 0 ]$odi>cadorR^ _no$'reDeClaseS -]_argsRS^. ]t8ro/s _no$'reDeE3cepcionRS^ W...X
(i ning=n constructor es creado2 uno por de7ecto es ela'orado por el co$pilador2 sin argu$entos * lla$ando al constructor por de7ecto de la superclase super-.. (i se especi>ca un constructor no *a no se crea el constructor por de7ecto.
Constructores
Bn constructor de'e de tener el $is$o no$'re +ue la clase * no de'e especi>car un tipo de retorno2 si es especi>cado2 el co$pilador *a no lo reconoce co$o un constructor. #ara toda clase de>nida 2 la pri$er instrucci%n de todos los constructores es una lla$ada a otro constructor. Esta lla$ada puede ser la invocaci%n por de7ecto de super-. 2 o puede ser0 Bna invocaci%n a otro constructor presente en la clase0 t8is-_para$etrosRS.` Bna invocaci%n a un constructor de la superclase0
E3presiones * Blo+ues
Bna e3presi%n es una serie de varia'le2 operadores * lla$adas de $9todos -i$ple$entadas de acuerdo al lengua"e. +ue eval=a * da co$o resultado un =nico valor.
E>&re!ione !
@"o1ue
&peradores
&peradores 0
:: incre ento 88 decre ento :A adicin -JaGaH'K es e+uivalente a JaHG'K. 8A !u!traccin -JaGa<'K es e+uivalente a Ja<G'K . BA u"ti&"icacin -JaGaR'K es e+uivalente a JaRG'K . /A divi!in -JaGaF'K es e+uivalente a JaFG'K . CA odu"o -JaGaR'K es e+uivalente a JaRG'K . DD AND +%ico EE OR +%ico
Co$entarios
!os co$entarios de docu$entaci%n2 colocados in$ediata$ente antes de una declaraci%n -de varia'le o 7unci%n.2 indican +ue ese co$entario 8a de ser colocado en la docu$entaci%n +ue se genera auto$tica$ente cuando se utili5a la 8erra$ienta de Java2 "avadoc. FF co$entarios para una sola l4nea FR co$entarios de una o $s l4neas RF; FRR co$entario de docu$entaci%n2 de una o $s l4neas RF
i7 W
tr* W sentencias` ............. X catc8 -E3cepcion e0. W sentencias` ............. X catc8 -E3cepcion e1. W .............. X >nall* W sentencias` X
Estructura s/itc8
S6itcH 'e>&re!ion( F ca!e Co!tanteI. ### ,rea2J ca!e Con!tanteK. ### ,rea2J # # # de$au"t. ### ,rea2J G
Estructura 7or
$or ' e>&re!ion J ,oo"ean J e>&re!ion( F ### G
6 di7erencia del C2 el Java per$ite iniciali5ar la varia'le dentro de la sentencia 7or2 por e"e$plo0 7or -int 3 G 0` 3 _ 20` 3HH. !a varia'le 3 sola$ente ser valida dentro del cuerpo del 'ucle.
#a+uetes
Bn pa+uetes es un con"unto de clases e inter7aces relacionadas +ue proporcionan protecci%n * ad$inistraci%n en el acceso a ellas. #ara declararlas se usa la pala'ra reservada pacEage Esto se coloca al inicio de todo progra$a 7uente. #ara acceder a un pa+uete utili5a$os la notaci%n del punto. pa+uete1.pa+uete2.$iClase`
:e7erencias
tHi! ?ace re7erencia al $is$o o'"eto2 se puede invocar a atri'utos o $etodos de la clase. !u&er ?ace re7erencia al o'"eto padre2 se puede invocar a atri'utos o $etodos de la clase padre.
etroJ
?erencia
Es la capacidad de crear una nueva clase a partir de otra. !a clase creada puede utili5ar las propiedades * los $9todos de la anterior2 as4 co$o los propios +ue 8a*a creado. !a clase padre se deno$ina superclase * la 8i"a2 su'clase. En Java la 8erencia es lineal -s%lo e3iste un superclase para una su'clase. * se Btili5a la pala'ra clave e3tends. (e 8eredan los $9todos per$itidos2 a $enos +ue se so'reescri'a alguno.
Bna clase puede so'rescri'ir un $9todo 8eredado pero no esconderlo. Lnica$ente desde dentro de una clase se puede lla$ar a $9todos de su superclase usando la instrucci%n 0 !u&er#no ,reLde"L etodo'(J !os constructores no son 8eredados` pero2 la clase puede i$ple$entar constructores e+uivalentes reenviado los par$etros respectivos con la instrucci%n0 !u&er'&ar IM&ar K(J en la pri$er l4nea del Constructor.
Bna clase puede prevenir la 8erencia de si $is$a o de sus $9todos e$pleando la pala'ra reservada d<na"N en su declaraci%n. E"e$plo 0 >nal (tring ,elocidad-Toat d2 dou'le t. W ... X Bna clase puede 7or5ar la so're escritura de si $is$a * de sus $9todos e$pleando la pala'ra reservada a,!tract en sus declaraciones. En este caso no es necesario incluir c%digo. E"e$plo 0 a'stract (tring ,elocidad-Toat d2 dou'le t. W X
Lnica$ente una clase de tipo da,!tracte puede contener $9todos de tipo da,!tracte.
Inter7aces -)ulti8erencia.
Bna inter7a5 es si$ple$ente un arc8ivo +ue esta'lece un tipo de o'"eto * los $9todos necesarios para su e$pleo2 sin i$ple$entarlos. (inta3is 0 ]$odi>cadorR^ _no$'reDeInter7a5S ]e3tends _no$'reDeInter7a5S^ W...X Cuando una clase i$ple$enta una inter7a5 necesaria$ente de'e i$ple$entar los $9todos esta'lecidos en ella.
(o'reescritura de )9todos
De'e$os revisar el nivel de accesi'ilidad para co$pro'ar +ue pode$os so'reescri'ir el $9todo. El $9todo de'e tener la $is$a J>r$aK +ue el de la clase padre. Desde el $9todo J8i"oK pode$os e"ecutar el $9todo JpadreK si es necesario.
#rincipio de (ustituci%n
JDe'e ser posi'le utili5ar cual+uier o'"eto instancia de una su'clase en el lugar de cual+uier o'"eto instancia de su superclase sin +ue la se$ntica del progra$a escrito en los t9r$inos de la superclase se vea a7ectado.K
Z #rincipio de (ustituci%n
Dado +ue los progra$adores pueden introducir c%digo en las su'clases rede>niendo las operaciones2 es posi'le introducir involuntaria<$ente inco8erencias +ue violen el principio de sustituci%n
#oli$or>s$o
El t9r$ino poli$or>s$o se re>ere a +ue una caracter4stica de una clase puede to$ar varias 7or$as El poli$or>s$o representa en nuestro caso la posi'ilidad de desencadenar operaciones distintas en respuesta a un $is$o $ensa"e Cada su'clase 8ereda las operaciones pero tiene la posi'ilidad de $odi>car local$ente el co$porta$iento de estas operaciones
Z #oli$or>s$o
E"e$plo0 todo ani$al duer$e2 pero cada clase lo 8ace de 7or$a distinta
Animal dormir()
?
dor$ir
?
Len Oso Tigre
Z #oli$or>s$o
Animal dormir()
Dormir() { }
Len dormir()
Dormir() { sobre el vientre }
Oso dormir()
Dormir() { sobrela espalda }
Tigre dormir()
Dormir() { en un rbol }
Z #oli$or>s$o
!a '=s+ueda auto$tica del c%digo +ue en cada $o$ento se va a e"ecutar es 7ruto del enlace din$ico El cu$pli$iento del #rincipio de (ustituci%n per$ite o'tener un co$porta$iento * diseIo co8erente
(o'recarga * (o'reescritura
(o'recarga-&verloading. .<
)=ltiples
$9todos declarados en la $is$a clase con el $is$o no$'re2 pero con di7erente tipo * nu$ero de argu$entos. E"e$plo 0
(o'rescritura-&verriding. .<
Bn
$9todo declarado en una su'clase con el $is$o no$'re * tipo de argu$entos +ue su superclase
E3cepciones * su gesti%n
Bna e3cepci%n es un o'"eto +ue avisa +ue 8a ocurrido alguna condici%n inusual. Java tiene $uc8os o'"etos de e3cepci%n prede>nidos * ta$'i9n pode$os crear los nuestros propios para gestionar personali5ada$ente su trata$iento. #ara utili5ar e3cepciones2 tene$os +ue 8acer cuatro cosas0 Intentar0 crear un 'lo+ue alrededor de la instrucci%n donde puedan ocurrir e3cepciones * precederlas con la pala'ra clave tr* Ca&turar0 colocar a continuaci%n de la instrucci%n tr* otro 'lo+ue precedido por la
E3cepciones * su gesti%n
+an0ar0 si no se trata la e3cepci%n2 9sta pasar auto$tica$ente al $9todo lla$ador` si la captura$os * la trata$os parcial$ente2 pode$os de todas 7or$as pasarla con una instrucci%n t8ro/. Dec"arar0 $encionar en la declaraci%n del $9todo +u9 e3cepciones se devolvern al $9todo lla$ador. tr*W Xcatc8- .W X>nall*W X
6serciones
Bna aserci%n es una instrucci%n +ue contiene una e3presi%n 'ooleana de la +ue el progra$ador sa'e +ue en un $o$ento dado de la e"ecuci%n del progra$a este de'e ser verdadero.
(u uso esta centrado en la 7ase de desarrollo * con ellos pode$os veri>car +ue el progra$a se e"ecuta dentro de los l4$ites +ue el progra$ador le $arca reduciendo la posi'ilidad de errores.
#ara declarar un aserto en una clase Java2 se usa la pala'ra clave assert0 assert E3presion1` assert E3presi%n10E3presi%n2`
6serciones
En cual+uiera de los dos casos E3presi%n1 tiene +ue ser una e3presi%n 'ooleana o se producir un error de co$pilaci%n. Cuando se eval=a un aserto +ue solo tenga E3presi%n12 se co$prue'a la veracidad de la e3presi%n * si es verdadera se contin=a la e"ecuci%n del progra$a2 pero si es 7alsa2 se lan5a una e3cepci%n de tipo 6ssertionError. (i el aserto contiene ade$s una E3presi%n2 * E3presi%n1 es 7alsa2 se eval=a E3presion2 * se le pasa co$o par$etro al constructor del 6ssertionError -(i E3presion1 se eval=a co$o cierto2 la segunda e3presi%n no se eval=a.. #ara usar en 1et'eans las 6serciones se de'e especi>car
Qu9 es Deprecated .
JDeprecatedK es un /arning diciendo +ue el soporte de esos $9todos ser retirado del n=cleo del J,)2 * +ue e3isten clases $as apropiadas2 o nuevas 7or$as de reali5ar la la'or deseada. 6 pesar de ello2 el 7uente "ava es pre<co$pilado a un class * aun es posi'le e"ecutarlo. El Java reci'e $odi>caciones constante$ente` nuevas clases2 nuevas inter7aces2 nuevos $9todos $as verstiles2 son desarrollados * pu'licados 7recuente$ente2 as4 co$o li'rer4as son ane3adas al siste$a - caso (@I1A..
@a!e de Dato!
6r+uitectura de (o7t/are Escala'le
6genda
&'"etivos
:econocer los o'"etos para tra'a"ar con 'ases de datos. Desarrollar aplicaciones +ue tra'a"en con 'ases de datos.
JDBC
E3isten P 7or$as de usar JDBC para cone3i%n con la BD0 El puente JDBC<&DBC -&DBC de )icroso7t. Driver de Java parcial$ente nativo -Drivers 1ativos. Driver JDBC de Java puro - Cone3i%n directa. Driver de protocolo de Java puro - Driver en Java.
El puente JDBC<&DBC
Drivers de terceros
8ttp0FFdevelopers.sun.co$FproductF"d'cFdri vers
#rocedi$ientos al$acenados
#repared(tate$ent ps G cn.prepare(tate$ent-J(elect R 7ro$ alu$no /8ere codigoG K.` ps.set(tring-12 123.` :esult(et rs G ps.e3ecuteQuer*-.`
Cursores * (#
#rocedi$ientos al$acenados
(tate$ent st$t G con.create(tate$ent-:esult(et.Cg#EU(C:&!!U(E 1(ICI,E2 :esult(et.C&1CB:UB#D6C6B!E.` :esult(et uprs G st$t.e3ecuteQuer*-V(E!ECC R F:&) C&FFEE(V.` FFInsertando un registro uprs.$oveCoInsert:o/-.` uprs.update(tring-VC&FU16)EV2 VDonaV.` uprs.updateInt-V(B#UIDV2 1Q0.` uprs.updateFloat-V#:ICEV2 10.YY.` uprs.insert:o/-.`
#rocedi$ientos al$acenados
(tate$ent st$t G con.create(tate$ent-:esult(et.Cg#EU(C:&!!U(E 1(ICI,E2 :esult(et.C&1CB:UB#D6C6B!E.` :esult(et uprs G st$t.e3ecuteQuer*-V(E!ECC R F:&) C&FFEE(V.` FF6ctuali5ando un registro uprs.last-.` uprs.updateFloat-V#:ICEV2 10.YY.` uprs.update:o/-.`
#rocedi$ientos al$acenados
Create #rocedure spU#ro$edio halu$no varc8ar-30.2 hpro$edio real &utput 6s Declare hsu$a real (elect hsu$aG -(elect nota1Hnota2Hnota3 Fro$ notas @8ere alu$noGhalu$no. (elect hpro$edioG hsu$aF3
#rocedi$ientos al$acenados
DE!I)ICE: FF C:E6CE #:&CEDB:E Aet&iceB*Countr* -I1 countr*1a$e ,6:C?6:-2QQ.. BEAI1 (E!ECC cit*2 p8one F:&) oices @?E:E countr* G countr*1a$e` E1D FF DE!I)ICE: `
#rocedi$ientos al$acenados
DE!I)ICE: [[ C:E6CE #:&CEDB:E Count&rderB*(tatus - I1 order(tatus ,6:C?6:-2Q.2 &BC total I1C. BEAI1 (E!ECC count-order1u$'er. I1C& total F:&) orders @?E:E status G order(tatus` E1D[[ DE!I)ICE: `
#rocedi$ientos al$acenados
(tate$ent st G cn.create(tate$ent-.` :esult(et rs G st.e3ecuteQuer*-JWcall spUlista6lu$nosXK.` <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<< Calla'le(tate$ent cs G cn.prepareCall-JWcall spUpro$edio- 2 .XK.` cs.set(tring-12 codigo.` cs.register&ut#ara$eter-22 "ava.s+l.C*pes.D&BB!E.` cs.e3ecute-.`
A&"icacione! en Ca&a!
6r+uitectura de (o7t/are Escala'le
Capas en 6plicaciones
1uevas plata@ormas de /ardFare para clientes 7 servidores a menos costo' >l avance de las tecnolog0as de redes' #entrali"acin de !rocesos en :ervidores >speciali"ados' Automati"acin de las empresas'
Capas en 6plicaciones
"8A CA'A Gn solo programa se encarga de generar desde la inter@a" gra@icaB pasando por el proceso de la in@ormacin 7 el control de su almacenamiento' Gn programa /ec/o en # que lea los datos de un arc/ivo de teAto los ordene 7 los muestre por pantalla'
Capas en 6plicaciones
9O% CA'A% >l ob<etivo es @acilitar el traba<o de las !# #lientes 7 centrali"ar ciertos procesosB este esquema podr0a aumenta el tra@ico de la red si se generan m?ltiples peticiones Gn sistema +isual ;asic que se conecta a una ;ase de Datos Oracle
Capas en 6plicaciones
Aplicacin Aplicacin
Capas en 6plicaciones
;R&% CA'A% La aplicacin se divide en tres capas lgicas distintasB cada una de estas con una inter@aces per@ectamente de@inidasB com?nmente se de@inen de la siguiente maneraD H !resentacin H Lgica H Datos
Capas en 6plicaciones
Inter(a< de "suario
Tres #apas
$gica de Aplicacin
9:
9ocu!entos 7M$
Capas en 6plicaciones
8 CA'A% >n una arquitectura de 1 nivelesB la lgica del negocio esta lgicamente dividida por @unciones (no necesariamente divisiones @0sicas)' 1o /a7 un modo preciso para de@inir las capasB el arquitecto de so@tFare las de@inir de acuerdo al requerimiento'
Capas en 6plicaciones
Inter(a< de "suario
1 #apas
=enerador de 'resentacin
$gica de Aplicacin
Acceso a 9atos
9:
9ocu!entos 7M$
Gracia!