Java Inicial para principiantes

download Java Inicial para principiantes

of 178

Transcript of Java Inicial para principiantes

  • 8/10/2019 Java Inicial para principiantes

    1/178

  • 8/10/2019 Java Inicial para principiantes

    2/178

  • 8/10/2019 Java Inicial para principiantes

    3/178

    www.belatrixsf.com |

    Qu es JAVA?

    P

    Lenguaje e !rogramacin ine!eniente e la !lataforma" orienta# $ue utili%a una m&$uina 'irtual !ara ejecutar el cigo com!ilao.

    (e !ro'ee una es!ecificacin abierta" utili%aa !or i'ersos !ro'eeim!lementar su !ro!ia m&$uina 'irtual.

  • 8/10/2019 Java Inicial para principiantes

    4/178

    www.belatrixsf.com |

    P

    Pro'eeores e JV)

    *!en J+, -oficial" !ero abierta # e cigo libre

    *ficial" e *racle

    A!ac/e 0armon# -e A!ac/e" abierta # e cigo libre

    )uc/as otras -/tt!122en.wi3i!eia.org2wi3i2List4of4Ja'a4'irtu

  • 8/10/2019 Java Inicial para principiantes

    5/178

    www.belatrixsf.com |

    J56 # J+,

    P

    6l JRE -Ja'a 5untime 6n'ironment es un arc/i'o binario $ue continecesario !ara ejecutar a!licaciones JAVA1 una im!lementacin e bibliotecas !ara correr cual$uier a!licacin JAVA.

    6l JDK-Ja'a +e'elo!ment ,it es una arc/i'o binario $ue contiene

    im!lementacin e la JV)" bibliotecas !ara correr cual$uier a!licacaem&s" un conjunto e /erramientas necesarias !ara el esarrollo a!licaciones" tal como1 com!ilaor" ebugger" etc.

    7u&l es la iferencia entre ambos? J+, 8 J56 9 /erramientas e

  • 8/10/2019 Java Inicial para principiantes

    6/178

    www.belatrixsf.com |

    Plataformas JAVA

    P

    JAVA (6 -(tanar 6ition1 lo $ue com:nmente se enomi7ontiene las bibliotecas b&sicas -lang" mat/" util" etc.

    JAVA 66 -6nter!rise 6ition1 agrega com!onentes !ara fac

    el esarrollo e a!licaciones granes" generalmente corrienen ser'iores e a!licaciones1 inclu#e J(P" 6J;" (er'lets" e

    JAVA )6 -)icro 6ition1 'ersin orientaa a esarrollo m'

  • 8/10/2019 Java Inicial para principiantes

    7/178

    www.belatrixsf.com |

    P

  • 8/10/2019 Java Inicial para principiantes

    8/178

    www.belatrixsf.com |

    7aracter

  • 8/10/2019 Java Inicial para principiantes

    9/178

    www.belatrixsf.com |

    *rientacin a objetos

    P

    Paraigma e !rogramacin" no est& ataa a un lenguaje.

    A#ua a entener un !roblema" concentr&nonos en las entia-moelaas en forma e objetos $ue forman !arte el mismo"interaccin entre las mismas" sus !ro!ieaes # las acciones $!ueen lle'ar a cabo -o e las $ue !ueen ser !arte.

    Los objetos son moelaos a tra's e clases" las $ue efinenconce!to o abstraccin e una entia $ue forma !arte el !ro

  • 8/10/2019 Java Inicial para principiantes

    10/178

    www.belatrixsf.com |

    =i!os fuertes 's ti!os biles

    P

    >n lenguaje es e ti!os biles si las 'ariables no tienen un ti!oe incluso !uee tomar 'alores e iferente ti!o a lo largo e la e!rograma.

    >n lenguaje es e ti!os fuertes si las 'ariables son e un ti!o cono !uee ser utili%aa como si fuera e otro ti!o a menos $ue uex!l

  • 8/10/2019 Java Inicial para principiantes

    11/178

    www.belatrixsf.com |

    )ulti!lataforma

    P

    6sto es !osible gracias a la existencia e la m&$uina 'irtual e JA-JV). 6l cigo fuente no se con'ierte a cigo e m&$uina" sina un cigo intermeio $ue es inter!retao !or la JV).

    +e esta manera" !ara !oer !ortar nuestra a!licacin a otra !lata

    solo necesitamos1

    m!lementacin e la JV) !ara la !lataforma e estino.

    7igo com!ilao $ue ser& inter!retao !or la JV).

  • 8/10/2019 Java Inicial para principiantes

    12/178

    www.belatrixsf.com |

    Libre # e es!ecificacin abier

    P

    >na es!ecificacin efine toos los etalles necesarios !ara !olle'ar aelante correctamente una im!lementacin. >na es!ecificetalla $u se ebe /acer" !ero no cmo.

    >na es!ecificacin es abierta si sus etalles son !:blicos.

    JAVA es esarrollao # istribu

  • 8/10/2019 Java Inicial para principiantes

    13/178

    www.belatrixsf.com |

    Ja'a J+,

    +escarga1 /tt!122www.oracle.com2tec/networ32es2ja'a2ja'ase2ownloas

    6legir la 'ersin e nuestro (* # ti!o e ar$uitectura -B o CD bits.

    Agregar a las 'ariables e entorno el PA=0 a la car!eta bin $ue se encueen el interior e la car!eta e instalacin e la J+,. nstrucciones es!ec

  • 8/10/2019 Java Inicial para principiantes

    14/178

    www.belatrixsf.com |

    =i!os !rimiti'os

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    15/178

    www.belatrixsf.com |

    *!eraores !ara ti!os !rimiti'

    +6 E @eneraliae

    6l o!eraor e asignacin -ar 'alor a una 'ariable es el s

  • 8/10/2019 Java Inicial para principiantes

    16/178

  • 8/10/2019 Java Inicial para principiantes

    17/178

    www.belatrixsf.com |

    7aracter

  • 8/10/2019 Java Inicial para principiantes

    18/178

    www.belatrixsf.com |

    )toos :tiles /ereaos e *b

    equals1 inica si el objeto !asao como !ar&metro es el mismoobjeto actual. (e com!ara $ue sean la misma instancia.

    toString1 e'uel'e una re!resentacin el objeto en forma e ccaracteres.

    7lases e

    (e recomiena sobreescribir ambos mtoos con la lgica e ne$ue re!resente nuestra o!eracin e iguala" # lo $ue nosotrosconsieramos $ue es la im!resin e uno e nuestros objetos.

  • 8/10/2019 Java Inicial para principiantes

    19/178

    www.belatrixsf.com |

    7lases e

    packagear.com.gestion.principal;

    publicclassPrincipal {privateString textToPrint;

    publicString getTextToPrint() {returntextToPrint;

    }

    publicvoidsetTextToPrint(String textToPrint) {this.textToPrint= textToPrint;

    }

    publicPrincipal() {this.textToPrint= "Texto de bienvenida";

    }

    publicstaticvoidmain() {Principal principal = newPrincipal();principal.setTextToPrint("Texto de bienvenida");System.out.println(principal.getTextToPrint());

    }}

    Pa$uete

    Atributo

    )too

    7onstructor

    )too main

    nstanciacin e objeto

  • 8/10/2019 Java Inicial para principiantes

    20/178

    www.belatrixsf.com |

    Pa$uete

    7reacin e un nue'o !a$uete1 7lic3 erec/o en src Iew

    (e utili%a el G.H como elimitaores e !a$uete -!a$uetes ania

    7lases e

    7onteneor e clases $ue !ermite agru!ar funcionaliaes simi

    Las clases eben tener nombre :nico" entro el !a$uete. Puelos nombres e clase !ara iferentes !a$uetes. Los !a$uetes Ges!acio e nombresH o Gnames!aceH.

  • 8/10/2019 Java Inicial para principiantes

    21/178

    www.belatrixsf.com |

    7lases e

    Atributo

    6l nombre el atributo ebe ser :nico !ara la clase. Io !uee cones!acios" !alabras reser'aas" 'alores booleanos" caracteres rese

    !ara o!eraciones -9" M" ?..." ni comen%ar con un n:mero.

    +efine una caracter

  • 8/10/2019 Java Inicial para principiantes

    22/178

    www.belatrixsf.com |

    7lases e

    Atributo

    La sintaxis e efinicin es1 N)oificaoresO =i!o nombreVariable

    privateintvalor;

    Para asignar 'alores a la 'ariable" se utili%a el o!eraor G8H.

    valor = 1;

  • 8/10/2019 Java Inicial para principiantes

    23/178

    www.belatrixsf.com |

    7lases e

    )too

    La combinacin e nombre e mtoo # ti!os e !ar&metros $ue reser :nica entro e una clase.

    7onjunto e o!eraciones o !roceso $ue !rouce un resultao" e'omismo al finali%ar la ejecucin o !roucieno un cambio en un objet

    (intaxis e efinicin e mtoos1 N)oificaoresO ti!o5etorno nom=i!oPar&metro nombrePar&metro" =i!oPar&metro nombrePar&metro

  • 8/10/2019 Java Inicial para principiantes

    24/178

    www.belatrixsf.com |

    7lases e

    )tooLos mtoos se in'ocan con la sintaxis1 nombre*bjeto.mi)too-!aTodos los parmetros se pasan por referencia1 son referencias alos cambios /ec/os a un objeto en un mtoo ser&n 'isibles en el morigen tambin.

    (e utili%a la sentencia GreturnH !ara /acer $ue un mtoo e'uel'a u

    6jem!lo1publicfloatm!ltiplicar(floatm!ltiplicando floatm!ltiplicador) {

    returnm!ltiplicando # m!ltiplicador;}

  • 8/10/2019 Java Inicial para principiantes

    25/178

    www.belatrixsf.com |

    7lases e

    Partes e la eclaracin e un )

    )oificaor

    =i!o e 'alor e retorno Iombre el mtoo

    Iombre el !=i!o el !ar&metro

    )oificaor e !a

    publicbooleanimprimir$ensa%e(String mensa%e) {System.out.println(mensa%e);returntrue;

    }

    (entencia e retorno

  • 8/10/2019 Java Inicial para principiantes

    26/178

    www.belatrixsf.com |

    7lases e

    nicio e la a!licacin1 7lase Prin

    7aa a!licacin tiene una clase $ue contiene un mtoo !rinci!alutili%aa !ara iniciar la ejecucin.

    La clase !rinci!al e una a!licacin es a$uella $ue contiene el mGmainH. 7um!le el !a!el e nuestro ejecutable.

    packagear.com.c!rso%ava.principal;

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    System.o!t.println("ola m!ndo");}

    }

  • 8/10/2019 Java Inicial para principiantes

    27/178

    www.belatrixsf.com |

    7lases e

    7om!ilano # ejecutano

    ompilaci!n1 ja'ac M .S Princi!al.ja'a

    E"ecuci!n1 ja'a ar.com.cursoja'a.!rinci!al.Princi!al

  • 8/10/2019 Java Inicial para principiantes

    28/178

    www.belatrixsf.com |

    Acti'ia

    +6 E @eneraliae

    7rear un arc/i'o e texto llamao GPrinci!al.ja'aH usano Tor!aPegar el siguiente texto en el arc/i'o creao1

    7om!ilar # ejecutar.

    packagear.com.gestion.principal;

    publicclassPrincipal {

    publicstaticvoidmain(String&' args) {System.out.println("ola m!ndo");}

    }

  • 8/10/2019 Java Inicial para principiantes

    29/178

    www.belatrixsf.com |

    6cli!se -+6

    +6 -ntegrate +e'elo!ment 6n'ironment $ue ofrece m:lti!les /# faciliaes !ara el esarrollo JAVA.

    >n +6 es solo una /erramienta. Io es necesario !ara !rogramar

    >rl e escarga1 /tt!122www.ecli!se.org2ownloas2

    nstrucciones e instalacin1 escargar # escom!rimir E naa m&

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    30/178

    www.belatrixsf.com |

    Tor3s!ace

    7ar!eta e trabajo $ue contieneun gru!o e !ro#ectos.

    Puee cambiarse encual$uier momento-Uile (witc/ wor3s!ace.

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    31/178

    www.belatrixsf.com |

    7reano un !ro#ecto

    Uile 7reate !roject Ja'a Project ntroucir unIombre Uinis/

    Poemos tener en el wor3benc/muc/os !ro#ectos" aun$ue no esrecomenable -o'er/ea.

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    32/178

    www.belatrixsf.com |

    Acti'ia

    +6 E @eneraliae

    7rear un nue'o !ro#ecto. 7rear una clase $ue contenga un mtocalcule el cuarao e un n:mero.

    Agregar el mtoo main. +efinir una 'ariable e ti!o !rimiti'o int" un 'alor # !asarlo como !ar&metro al mtoo e c&lculo e cuam!rimir !or !antalla el resultao -(#stem.out.!rintln-'alor.

    6jecutar usano 6cli!se.

  • 8/10/2019 Java Inicial para principiantes

    33/178

    www.belatrixsf.com |

    m!ortar clases !ara su uso

    +6 E @eneraliae

    7onsiste en im!ortar una clase entro e otra !ara !oer usarla e sta :ltima.

    (intaxis1 im!ort !a$uetes./asta.clase.Iombre7lase

    importar.com.gestion.abstracta.e*+c!lo;

    Atajo en ecli!se1 Uix im!orts -7trl 9 (/ift 9 *.

  • 8/10/2019 Java Inicial para principiantes

    34/178

    www.belatrixsf.com |

    *!eraores !ara ti!os !rimiti'

    +6 E @eneraliae

    Al asignar 'alores a una 'ariable numrica !ueen utili%arse lite-un n:mero. Puee for%arse un literal a un ti!o numrico eterm

    U o f1 fuer%a un 'alor numrico al ti!o float. 6j.1 float flotante

    L o l1 fuer%a un 'alor numrico al ti!o long. 6j.1 long largo 8

    + o 1 fuer%a un 'alor numrico al ti!o dou#le1 6j.1 ouble

  • 8/10/2019 Java Inicial para principiantes

    35/178

    www.belatrixsf.com |

    *!eraores !ara ti!os !rimiti'

    +6 E @eneraliae

    Los o!eraores !ara com!aracin e n:meros son1 $-menor" $=igual" %-ma#or" %=-ma#or o igual" ==-igual" &=-istinto

    JAVA utili%a notacin infija !ara las o!eraciones matem&ticas. Loso!eraores matem&ticos son1 '-unario" signo !ositi'o" (-unario"

    negati'o" '-suma" (-resta" )-multi!licacin" *-i'isin" +-rescociente" ''-suma W" ,-resta W.

    Para la !receencia e o!eraciones" se utili%an !arntesis.

  • 8/10/2019 Java Inicial para principiantes

    36/178

    www.belatrixsf.com |

    *!eraores !ara ti!os !rimiti'

    +6 E @eneraliae

    *!eraores a ni'el e bits1 $$" %%-rotacin a ni'el e bits sin sign%%%-rotacin a ni'el e bits con signo" --com!lemento a ni'el e-AI+ a ni'el e bits" /-*5 a ni'el e bits # 0 -*5 a ni'el e bi

    *!eraores booleanos1 ==-igual" &=-istinto" &-com!lemento" .-*5" 0-*5" ..-AI+ conicional" //-*5 conicional.

  • 8/10/2019 Java Inicial para principiantes

    37/178

    www.belatrixsf.com |

    7on'ersin e 'alores

    +6 E @eneraliae

    JAVA es e ti!os fuertes. (ignifica $ue no !ueo con'ertir 'alores iferentes ti!os numricos? (X se !uee" !ero ebo ex!licitar $ue /acer una con'ersin e ti!os a tra's el o!eraor 7A(= -se encti!o estino entre !arntesis. 6l siguiente cigo es '&lio1

    doubledoble = 1.,;int entero = (int) doble;

    6l 'alor e GenteroH ser& W -se !iere la !arte ecimal.

    @ li

  • 8/10/2019 Java Inicial para principiantes

    38/178

    www.belatrixsf.com |

    Acti'ia

    +6 E @eneraliae

    Qu sucee si con'ertimos e un ti!o e atos origen un ti!o eestino con una !recisin menor? YYY7om!robemosZZZ

    7rear una clase con un mtoo main" inclu

  • 8/10/2019 Java Inicial para principiantes

    39/178

    www.belatrixsf.com |

    7lases e

    Qu es un objeto?

    Las clases efinen un mole" efinen las caracterna clase es una abstraccin o generali%acin conce!to e la realia. 6s una es!ecificacin e las caractern objeto es la reali%acin e una clase" es una instancia e una c7onsiste en una existencia concreta $ue cum!le con las caracter

  • 8/10/2019 Java Inicial para principiantes

    40/178

    www.belatrixsf.com |

    7lases e

    Qu es un objeto? -ejem!lopackagear.com.c!rso%ava.principal;

    publicclassPersona {String dni;String nombre;String apellido;

    }

    +ni1 [.\WB.DWIombre1 )art

  • 8/10/2019 Java Inicial para principiantes

    41/178

    www.belatrixsf.com |

    7lases e

    7reacin e un objetoAl efinir una 'ariable" inicamos al com!ilaor un nombre con el referimos a una unia e atos e un ti!o eterminao.

    >na 'ariable e ti!o !rimiti'a" al ser efinia" tambin reser'a en es!acio !ara ser almacenaa. >na 'ariable $ue referencia un obje

    +efinicin e una 'ariable $ue ar referenciaa un objeto e ti!o7alculaora;ase1

    3alc!ladora4ase calc!ladora;

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    42/178

    www.belatrixsf.com |

    7lases e

    7reacin e un objeto

    Al efinir una 'ariable !ara /acer referencia a un objeto e una cla'alor inicial es inefinio -null. 6n este caso" se reser'a memoriase instancia -crea un objeto e la clase meiante el o!eraor new

    6l o!eraor GnewH utili%a el constructor e la clase !ara instanciar

    =oa clase tiene un constructor" el cual efine las GreglasH e creaobjeto. (i no creamos uno ex!l

  • 8/10/2019 Java Inicial para principiantes

    43/178

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    44/178

    www.belatrixsf.com |

    7lases e

    7reacin e un objeto

    (e !ermite efinir m&s e unconstructor !ara una misma clase-sobrecarga e constructores.

    publicclassPersona {public String nombre;

    publicPersona () {}

    publicPersona (String nombrethis.nombre= nombre;

    }}

    Persona calc = newPersona();

    nstanciacin usano ne2Persona calc = newPersona(56o*n Sn

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    45/178

    www.belatrixsf.com |

    7lases e

    Acceer miembros e un obje

    Para acceer a un atributo !:blico e un objeto" utili%amos el o!e-!unto. Poemos asignar un 'alor al mismo meiante el o!erao

    Persona persona = newPersona();persona.nombre= "6o*n Sno7";

    Para in'ocar un mtoo e un objeto" utili%amos el o!eraor G.G -!

    !ersona.setIombre-"6o*n Sno7");

  • 8/10/2019 Java Inicial para principiantes

    46/178

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    47/178

    www.belatrixsf.com |

    7lases e

    7om!aracin e objetos

    Por efecto" Ja'a com!ara $ue la instancia e los objetos com!arsea la misma. 6ntonces" $u es lo $ue sucei a$u

  • 8/10/2019 Java Inicial para principiantes

    48/178

    www.belatrixsf.com |

    Acti'ia

    +6 @eneraliae

    Qu significa $ue una 'ariable e ti!o objeto /aga GreferenciaH a*bjeto? A'erig_emos...

    )oificar el mtoo main !ara $ue cree una instancia e la clase usano el constructor con W !ar&metro -nombre. A continuacin

    otra 'ariable e ti!o Persona" # asignarle el 'alor e la 'ariable recreaa. 7ambiar el 'alor el nombre !ara la seguna 'ariable Pee im!rimir el nombre e la !rimera !or !antalla.

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    49/178

    www.belatrixsf.com |

    7lases e

    Arreglos

    +efinen un objeto conteneor $ue guara un n:mero fijo e 'alorun ti!o :nico.

    =oos los 'alores el arreglo eben ser el mismo ti!o.

    (u tama`o es est&tico -no !uee cambiar.

    (e reser'a es!acio en memoria una 'e% creamos el arreglo

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    50/178

    www.belatrixsf.com |

    7lases e

    Arreglos

    Los elementos e un arreglo son acceios !or un

  • 8/10/2019 Java Inicial para principiantes

    51/178

    www.belatrixsf.com |

    Arreglos

    Para asignar un 'alor al tercer elemento el arreglo !oemos /ac

    Persona terceraPersona = newPersona();Persona&' personas = newPersona&1';personas&/' = terceraPersona;

    Para obtener la cantia e elementos e un arreglo" usar lengt/ un int1

    Persona&' personas = newPersona&1';System.out.println(personas.lengt*);

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    52/178

    www.belatrixsf.com |

    Arreglos>n arreglo !uee tener m&s e una imensin1

    niciali%acin r&!ia e arreglos1

    int&'&' matri = newint&'&';

    String&' arreglo = {"!no" "dos" "tres"};

    int&'&'&' c!bo = newint&'&'&';

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    53/178

    www.belatrixsf.com |

    Acti'ia

    7rear un arreglo e tama`o !ara contener elementos e ti!o in

    Asignar un 'alor a las !rimeras os !osiciones.

    Asignar a la tercera !osicin la suma e las otras os !osiciones

    m!rimir el resultao !or !antalla.

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    54/178

    www.belatrixsf.com |

    0erencia

    Permite crear clases usano una clase existente como base. (e reusar las !ro!ieaes # mtoos e la clase existente" ubicano# mtoos comunes a muc/os /ijos.

    La clase base se llama Gsu!erclaseH" # la $ue la extiene se llama

    GsubclaseH.

    La clase /ija o subclase !uee agregar funcionalia !ro!ia -extila funcionalia base.

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    55/178

    www.belatrixsf.com |

    0erenciapublicclass3alc!ladora4ase {

    publicString d!enio;

    publicfloats!mar(floatprimerS!mandofloatseg!ndoS!mando) {

    returnprimerS!mando < seg!ndoS!mando;}

    publicfloatrestar(floatmin!endo floats!straendo) {returnmin!endo s!straendo;

    }

    publicfloatm!ltiplicar(floatm!ltiplicando

    floatm!ltiplicador) {returnm!ltiplicando # m!ltiplicador;

    }

    publicfloatdividir(floatdividendo floatdivisor) {returndividendo > divisor;

    }}

    packagear.com.c!rso%ava.calc!los;

    publicclass3alc!ladora?vanada exte

    publicfloatc!adrado(floatnreturnm!ltiplicar(n!m

    }}

    0erencia1 !alabra reGextensH

  • 8/10/2019 Java Inicial para principiantes

    56/178

  • 8/10/2019 Java Inicial para principiantes

    57/178

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    58/178

    www.belatrixsf.com |

    Acti'ia7mo funciona el polimorfismo? 0agamos un ejem!lo.

    7rear una clase GVe/iculoH $ue contenga un mtoo Gencener)oos clases GAutoH # G)otoH $ue /ereen e la clase Ve/iculo -exte7rear un mtoo Gencener)otorH en ambas clases /ijas" e im!ri

    !antalla iferentes caenas. )oificar el mtoo main" eclaran'ariables e ti!o 'e/

  • 8/10/2019 Java Inicial para principiantes

    59/178

    www.belatrixsf.com |

    )oificaores e acceso

    private1 los elementos solo !ueen acceerse ese la misma classe encuentran. 6s el ti!o m&s restricti'o.

    +eterminan ese $u clase se !uee acceer a un eterminao el(on a!licables a 'ariables" mtoos o clases.

    privatefloatdividir(finalfloatdividendo finalfloatdivisor) {returndividendo > divisor;

    }

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    60/178

    www.belatrixsf.com |

    )oificaores e accesoprotected1 los elementos solo !ueen acceerse ese clases ubicmismo !a$uete" # ese cual$uier clase $ue extiena la clase en $uencuentra.

    package ar.com.c!rso%ava.calc!los;

    publicclass3alc!ladora4ase {

    protectedfloatm!ltiplicar(floatm!ltiplicandofloatm!ltiplicador) {

    returnm!ltiplicando # m!ltiplicador;}

    }

    package ar.com.c!rso%ava.calc!los;

    publicclass3alc!ladora?vanada extends

    publicfloatc!adrado(floatn!merreturnm!ltiplicar(n!mero

    }}

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    61/178

    www.belatrixsf.com |

    )oificaores e acceso

    default1 no se es!ecifica !alabra cla'e. Permite acceer al element:nicamente ese clases $ue se encuentran en el mismo !a$uete $clase $ue lo contiene. Lo siguiente no est permitido -7alculaoraintenta acceer ilegalmente al mtoo multi!licar e su su!erclase

    package ar.com.c!rso%ava.calc!los;

    publicclass3alc!ladora4ase {

    floatm!ltiplicar(floatm!ltiplicandofloatm!ltiplicador) {

    returnm!ltiplicando # m!ltiplicador;}

    }

    package ar.com.c!rso%ava.calc!los.avanad

    publicclass3alc!ladora?vanada extends

    publicfloatc!adrado(floatn!merreturnm!ltiplicar(n!mero

    }}

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    62/178

    www.belatrixsf.com |

    )oificaores e accesopu#lic1 !ermite acceer al elemento ese cual$uier clase"ine!enientemente e $ue sta !ertene%ca o no al mismo !a$ueteclase conteneora. 6n el siguiente ejem!lo ambas clases est&n ubiciferentes !a$uetes -# el cigo es '&lio1

    package ar.com.c!rso%ava.calc!los;

    publicclass3alc!ladora4ase {

    floatm!ltiplicar(floatm!ltiplicandofloatm!ltiplicador) {

    returnm!ltiplicando # m!ltiplicador;}

    }

    package ar.com.c!rso%ava.calc!los.avanad

    publicclass3alc!ladora?vanada {

    publicfloatc!adrado(floatn!mero3alc!ladora4ase calc = ne7returncalc.m!ltiplicar(n!

    }}

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    63/178

    www.belatrixsf.com |

    7onsieracin1 acceso a objetI896RT4TE1 +ebe e'itar acceerse2asignar 'alores a los atribun objeto en forma irecta. @eneralmente los atributos son !ri'aofrecen mtoos !:blicos !ara asignar # obtener 'alores al2el o6jem!lo1

    publicclassPersona {privateString nombre;

    publicString getBombre() {

    returnnombre;}

    publicvoidsetBombre(String nombre) {this.nombre= nombre;

    }}

  • 8/10/2019 Java Inicial para principiantes

    64/178

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    65/178

    www.belatrixsf.com |

    )oificaores e clase1 static M 6jpackagear.com.c!rso%ava.principal;

    importar.com.c!rso%ava.!tils.Cmpresora$ensa%e;

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    String mensa%e = args&';Cmpresora$ensa%e.imprimirMensaje(mensa%e);

    }}

    packagear.com.c!rso%ava.!tils;

    publicclassCmpresora$ensa%e {publicstaticvoidimprimir$ensa%e(String mens

    System.out.println(mensa%e);}

    }

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    66/178

    www.belatrixsf.com |

    )oificaores e clase1 fina

    final1 ientifica elementos $ue no 'an a cambiar" es ecir" $ue son se a!lica a 'ariables" clases # mtoos. 7aracter

  • 8/10/2019 Java Inicial para principiantes

    67/178

    www.belatrixsf.com |

    )oificaores e clase1 final M 6jepackagear.com.c!rso%ava.principal;

    importar.com.c!rso%ava.!tils.Cmpresora$ensa%e;

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    String mensa%e = args&';Cmpresora$ensa%e.imprimirMensaje(Version: < Cmpresora$ensa%e.-DSCABEC$PD-Cmpresora$ensa%e.imprimirMensaje(mensa%e);

    }

    } packagear.com.c!rso%ava.!tils;

    publicclassCmpresora$ensa%e {publicstaticvoidimprimir$ensa%e(String mens

    System.out.println(mensa%e);}

    }

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    68/178

    www.belatrixsf.com |

    )oificaores e clase1 fina

    7aractern m;todofinal no !uee ser sobreescrito !or clases /ijas.

    6l est&nar e nomenclatura !ara m;todosfinal es el mismoel utili%ao !ara mtoos con'encionales.

    >na clasefinal inica $ue no !uee ser extenia !or otra c

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    69/178

    www.belatrixsf.com |

    )oificaores e clase1 abstra

    Permiten efinir o!eraciones comunes $ue eber

  • 8/10/2019 Java Inicial para principiantes

    70/178

    www.belatrixsf.com |

    )oificaores e clase1 abstra

    Los mtoos abstractos no !ueen tener cuer!o.

    >na clase abstracta !uee contener mtoos no abstractos.

    (i una clase tiene un mtoo abstracto" ella ebe ser abstracta

    >na clase $ue extiene una clase abstracta tiene la obligacin m!lementar toos los mtoos e su !are" o ebe ser abstractambin.

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    71/178

    www.belatrixsf.com |

    7lases abstractas

    +efine una tarea general ejano a los /ijos los etalles es!e

    o pueden ser instanciadas. (on conce!tos abstractos.

    (i al menos un mtoo tiene el moificaor GabstractH" la clas

    ser abstracta. Puee contener mtoos no abstractos -con c

    >n mtoo abstracto lle'a el moificaor GabstractH" # no tien

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    72/178

    www.belatrixsf.com |

    packagear.com.gestion.abstracta;

    publicabstractclasse*+c!lo {publicabstractvoidencender$otor();

    publicvoidencenderF!ces() {

    System.o!t.println("-ncenderl!ces");}

    } packagear.com.gestion.abstract

    publicclass?!to extendse*+c

    @Averridepublicvoidencender$otor

    System.out.println(}

    }

    packagear.com.gestion.abstracta;

    publicclass$oto extendse*+c!lo {

    @Averridepublicvoidencender$otor() {

    System.out.println("Girar llave");System.out.println("Har patada");

    }}

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    73/178

    www.belatrixsf.com |

    Acti'ia

    1(+eclarar toos los mtoos e G7alculaora;aseH como est&tic+eclarar la clase como abstracta # efinir en ella un mtoo G!oteabstracto" $ue reciba B n:meros como !ar&metro. Qu sucee G7alculaoraA'an%aaH?

  • 8/10/2019 Java Inicial para principiantes

    74/178

    www.belatrixsf.com |

    nterfaces

    (on como clases abstractas en su m&xima ex!resin. Iingunomtoos tienen cuer!o. (olo efinen o!eraciones. =oos sus mson !:blicos.Pueen /erear e otras interfaces -0erencia m:lti!le. Io !uim!lementar otras interfaces.

    Pueen tener atributos" !ero stos ser&n !:blicos est&ticos # c-aun$ue nosotros no lo ini$uemos.

    f

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    75/178

    www.belatrixsf.com |

    nterfaces

    +efinen una es!ecie e contrato1 es!ecifican $u /ar&n # se g$ue el resultao e la o!eracin # sus !arametros no cambiar&

    (i una clase im!lementa -meiante la !alabra reser'aa impleuna interfa%" ebe !ro'eer una im!lementacin e toos sus m

    >na 'ariable utili%aa !ara referenciar una clase e ti!o interfaser utili%aa !ara /acer referencia a cual$uier instancia e unaim!lementaciones.

    f

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    76/178

    www.belatrixsf.com |

    nterfaces

    packagear.com.c!rso%ava.desc!entos;

    publicclassHesc!ento3lientePremi!m implementsHesc!ento3liente {@Averridepublicfloatcalc!larHesc!ento(floattotal?Pagar) {

    returntotal?Pagar (total?Pagar # / > 1);}

    }

    packagear.com.c!rso%ava.desc!ento

    publicclassHesc!ento3lienteB!evoimplementsHesc!ento3l

    @Averridepublicfloatcalc!larHesc!en

    returntotal?Pagar;}

    }

    packagear.com.c!rso%ava.desc!entos;

    publicinterfaceHesc!ento3liente {floatcalc!larHesc!ento(floattotal?Pagar);

    }

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    77/178

    www.belatrixsf.com |

    Acti'ia

    1(7o!iar el ejem!lo e escuentos" creano las interfaces # clasenecesarias.

  • 8/10/2019 Java Inicial para principiantes

    78/178

    www.belatrixsf.com |

    6numeraciones(on ti!os com!lejos con 'alores constantes !reefinios. 6xtie

    Io se instancian. Los 'alores se acceen est&ticamente.

    +an un ma#or control sobre los 'alores !osibles $ue un mtoace!tar. +efine un conjunto e 'alores !osibles.

    Pueen contener 'ariables o mtoos.

    >tili%an constructores !ri'aos !ara iniciali%ar sus 'alores. Losconstructores no !ueen ser in'ocaos manualmente.

    6 i >

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    79/178

    www.belatrixsf.com |

    6numeraciones M >sopackagear.com.gestion.en!meraciones;

    publicenumHia {LUNES(1)MARTES(/)MIERCOLES()

    JUEVES(I) VIERNES(,) SABAO()OMIN!O(0);

    privateintdiaHeSemana;

    privateHia(intdiaHeSemana) {this.diaHeSemana= diaHeSemana;

    }

    publicintgetHiaHeSemana() {returndiaHeSemana;

    }}

    packagear.com.gestion.principal;

    importar.com.gestion.en!meraciones.

    publicclassPrincipal {publicstaticvoidmain(String

    imprimirNumeroeiaeSem}

    publicstaticvoidimprimirB!mHia dia) {

    System.out.println(dia.g}

    }

    7lases e

  • 8/10/2019 Java Inicial para principiantes

    80/178

    www.belatrixsf.com |

    7onicionales1 (entencias Gif

    Los conicionales !ermiten moificar el flujo normal e la ejecucia!licacin. Permiten efinir fragmentos e cigo $ue ser&n ejecuse cum!le eterminaa conicin. La conicin ebe ser una ex!rcu#o resultao sea un 'alor booleano.

    >n blo$ue if e una sola l

  • 8/10/2019 Java Inicial para principiantes

    81/178

    www.belatrixsf.com |

    7onicionales1 (entencias GifpublicclassPrincipal {publicstaticvoidmain(String&' args) {

    longn!mero = Fong.parseLon"(args&');if(n!mero == ) {

    System.out.println("-l nJmero ingresado es "e no existir una" se ejecutan los em&s caminos en cascaa.

    7lases e

    6jem!lo1

  • 8/10/2019 Java Inicial para principiantes

    84/178

    www.belatrixsf.com |

    ia #ia $ ia%&a'ueO((args&');

    switch(dia) {caseLUNESO

    System.out.println("-s l!nes");break;

    caseMARTESOSystem.out.println("-s martes");break;

    caseMIERCOLESOSystem.out.println("-s miercoles");break;

    caseJUEVESOSystem.out.println("-s %!eves");break;

    caseVIERNESOSystem.out.println("-s viernes");break;

    defaultOSystem.out.println("9inde");break;

    }

    6jem!lo1 Par&me!rogram

    7lases e

    6jem!lo sin

  • 8/10/2019 Java Inicial para principiantes

    85/178

    www.belatrixsf.com |

    6jem!lo sin

    brea3-cascaa1

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    Hia dia = Hia.&a'ueO((args&');System.out.println("3!Qnto :!eda para e

    switch(dia) {caseLUNESO

    System.out.println("Te RaltcaseMARTESO

    System.out.println("Te RaltcaseMIERCOLESO

    System.out.println("Te RaltcaseJUEVESO

    System.out.println("Te RaltcaseVIERNESO

    System.out.println("9inalmebreak;

    defaultOSystem.out.println("Ua es Rbreak;

    }}

    }

    i i

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    86/178

    www.belatrixsf.com |

    Acti'ia

    1(7o!iar el ejem!lo e escuentos" crear una enumeracin G=i!ocon os 'alores1 Iue'o # Premium.

    sar la sentencia switc/ o if !ara eterminar el ti!o e cliente" la im!lementacin e c&lculo e escuento corres!oniente en ba!ar&metro e entraa. >sar una 'ariable e ti!o G+escuento7lien

    !ara /acer referencia a la instancia creaa.

    (m!rimir !or !antalla el c&lculo e escuento.

    ;ucles+6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    87/178

    www.belatrixsf.com |

    ;ucles>n bucle es una instruccin es!ecial $ue efine un conjunto e

    instrucciones $ue eben ejecutarse mientras se cum!la una eteconicin. 0a# mecanismos1

    for1 conoce e antemano la cantia e iteraciones necesar

    2ile1 e'al:a la conicin al comien%o" si no se cum!le no

    ingresa al cuer!o. Puee no ingresar nunca al cuer!o.

    do , 2ile1 garanti%a la ejecucin el cuer!o al menos una '6'al:a la conicin al final

  • 8/10/2019 Java Inicial para principiantes

    88/178

    ;ucles E for E !asos e ejecuc+6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    89/178

    www.belatrixsf.com |

    ;ucles E for E !asos e ejecucWM (e ejecuta el !aso e iniciali%acin. 6ste !aso solo se ejecuta u

    Io es obligatorio1 !uee omitirse la sentencia -!ero no el . Pueeiniciali%arse m&s e una 'ariable" se!arano las mismas con una c

    BM (e ejecuta el cuer!o el bucle.

    M (e ejecuta el !aso e actuali%acin. Puee actuali%arse el 'alorcual$uier 'ariable. 6s o!cional" !uee omitirse -!ero no el $ue lo

    DM (e com!rueba la conicin. (i no se cum!le" se sale el bucle.contrario" 'ol'er al !aso B.

    ;ucles M w/ile+6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    90/178

    www.belatrixsf.com |

    ;ucles w/ile?ilenos !ermite ejecutar un blo$ue e cigo m:lti!les 'eces

    re'isano $ue una conicin sea 'eraera en caa 'uelta. Laconicin se re'isa antes e ejecutar el cuer!o. +ebio a esto" e!osible $ue el cuer!o nunca se ejecute" en el caso e $ue la consea falsa en el !rimer c/ec3.

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    intx = ;

    while(x M 1) {x

  • 8/10/2019 Java Inicial para principiantes

    91/178

    www.belatrixsf.com |

    ;ucles o w/ile

    Do , 2ilees mu# similar a w/ile. La :nica iferencia es $ue el

    e la conicin se re'isa al terminar la ejecucin el cuer!o" en comien%o. 7omo resultao" el cuer!o el mtoo se ejecuta" comm

  • 8/10/2019 Java Inicial para principiantes

    92/178

    www.belatrixsf.com |

    +iferencia entre Gw/ileH # Go w/

    publicclassPrincipal {publicstaticvoidmain(St

    intx = 1;do{

    x

  • 8/10/2019 Java Inicial para principiantes

    93/178

    www.belatrixsf.com |

    Acti'ia

    1(7rear un arreglo e enteros e W[ elementos. Almacenar W[ 'a

  • 8/10/2019 Java Inicial para principiantes

    94/178

    www.belatrixsf.com |

    ;ucles continue

    La !alabra reser'aa continue nos !ermite omitir el resto el cuebucle # saltar a la siguiente iteracin.

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    >> Cmprimimos nJmeros del al V excepto el for(intx = ; x M 1; x

  • 8/10/2019 Java Inicial para principiantes

    95/178

    www.belatrixsf.com |

    Acti'ia

    1(7rear un arreglo e enteros e W[ elementos. Almacenar W[ 'alo

  • 8/10/2019 Java Inicial para principiantes

    96/178

    www.belatrixsf.com |

    ;ucles brea3La !alabra reser'aa brea3 nos !ermite salir e la ejecucin el

    Io se continuar& iterano" la ejecucin contin:a con la siguienteinstruccin al bucle.publicclassPrincipal {

    publicstaticvoidmain(String&' args) {>> S!matoria de n!meros salimos al s!perar el valor 1inti = 1;intac!m!lado = ;while(true) {

    ac!m!lado > res!men paraO ac!m!lado = ac!m!ladoif(ac!m!lado K 1) {

    break;}

    }

    System.out.println("?c!m!ladoO "< ac!m!lado);}

    }

    Acti'ia

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    97/178

    www.belatrixsf.com |

    Acti'ia

    1(7rear un arreglo e enteros e W[ elementos. Almacenar W[ 'a

  • 8/10/2019 Java Inicial para principiantes

    98/178

    www.belatrixsf.com |

    >n collection es un objeto $ue agru!a elementos relacionaos. Priferentes o!eraciones !ara almacenar" obtener" buscar # mani!uliferentes formas los elementos $ue contienen.

    >n framewor3 e collections est& formao t

    Interfaces1 efinen las o!eraciones $ue esem!e`an.

    Implementaciones1 im!lementacin concreta e las interface

    4lgoritmos1 o!eraciones :tiles # mu# comunes !ara collectio

    7ollection Uramewor3 M ;enefic7

  • 8/10/2019 Java Inicial para principiantes

    99/178

    www.belatrixsf.com |

    5euce el esfuer%o e esarrollo

    ncrementa la !erformance # calia el cigo

    Permite la relacionar iferentes a!licaciones $ue utilicen collecasi sin esfuer%o E solo necesitamos conocer el collection fra

    Uacilita im!lementaciones !ro!ias E solo ebemos im!lemeninterfaces

    7ollection Uramewor3 M 7ollect7

  • 8/10/2019 Java Inicial para principiantes

    100/178

    www.belatrixsf.com |

    ollection1 es la clase ra

  • 8/10/2019 Java Inicial para principiantes

    101/178

    www.belatrixsf.com |

    (et1 es una nterfa% $ue extiene 7ollection -es una coleccinno amite elementos u!licaos. 6jem!los e im!lementacin0as/(et -no garanti%a oren e iteracin" =ree(et -orena suen base a su 'alor # Lin3e0as/List -orena sus elementos eoren e insercin. (olo brina acceso secuencial.

    publicinterfaceSetM-K extends3ollectionM-K {

    intsie(); booleanis-mpty(); booleancontains(Ab%ect element); booleanadd(- element); booleanremove(Ab%ect element); CteratorM-K iterator();

    booleancontains?ll(3ollectio

    booleanadd?ll(3ollectionMN e booleanremove?ll(3ollectionM booleanretain?ll(3ollectionM voidclear(); Ab%ect&' to?rray(); MTK T&' to?rray(T&' a);}

    >so e (et E m!lementacin 0a7

  • 8/10/2019 Java Inicial para principiantes

    102/178

    www.belatrixsf.com |

    !

    packagear.com.gestion.principal;

    import%ava.!til.as*Set;import%ava.!til.Set;

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    Set cadenas = newas*Set();cadenas.add("Wna cadena");

    System.out.println(cadenas.sie());}

    }

    7ollection Uramewor3 M List7

  • 8/10/2019 Java Inicial para principiantes

    103/178

    www.belatrixsf.com |

    List1 coleccin orenaa" $ue !ro'ee acceso aleatorio # secusus elementos. Permite u!licaos. Agrega o!eraciones !araelementos en una !osicin eterminaa" obtener el elemento!osicin eterminaa" buscar" obtener sublistas" etc. m!lemeArra#List" Lin3eList # Vector.

    publicinterfaceFistM-K extends3ollectionM-K { - get(intindex);

    - set(intindex - element); booleanadd(- element);voidadd(intindex - element);

    - remove(intindex);

    booleanadd?ll(intindex 3ollec intindexAR(Ab%ect o);

    intlastCndexAR(Ab%ect o); FistCteratorM-K listCterator(); FistCteratorM-K listCterator(int FistM-K s!bFist(intRrom intto}

    >so e List E m!lementacin Arr7

  • 8/10/2019 Java Inicial para principiantes

    104/178

    www.belatrixsf.com |

    !

    packagear.com.gestion.principal;

    import%ava.!til.?rrayFist;import%ava.!til.Fist;

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    Fist cadenas = new?rrayFist();cadenas.add("Wna cadena");

    System.out.println(cadenas.get());}}

    5ecorrieno (ets # Lists1 tera7

  • 8/10/2019 Java Inicial para principiantes

    105/178

    www.belatrixsf.com |

    Para iterar en un (et o un List" !oemos utili%ar la interfa% Giterator

    es un objeto $ue nos !ermite recorrer un collection en forma serial !or elemento" en oren. La interfa% iterator contiene elementos1 /next # remo'e. Para recorrer los elementos" tiene un !untero al ele

    aseAt1 e'uel'e un 'alor boolean $ue inica si $uean elem

    neAt1 e'uel'e el siguiente elemento" # a'an%a el !untero una

    remove1 $uita el iterator el elemento actual.

    5ecorrieno (ets # Lists1 tera7

  • 8/10/2019 Java Inicial para principiantes

    106/178

    www.belatrixsf.com |

    publicclassPrincipal {

    publicstaticvoidmain(String&' args) {Set cadenas = newas*Set();cadenas.add("Wna cadena");cadenas.add("Atra cadena");

    Cterator iterator = cadenas.iterator();System.out.println(cadenas.sie());

    while(iterator.*asBext()) {iterator.next();

    iterator.remove();}

    System.out.println(cadenas.sie());}

    }

    publicclassPrincipal {publicstaticvoidmain(String

    Fist cadenas = new?rrayFcadenas.add("Wna cadena")cadenas.add("Atra cadena"

    FistCterator iterator = cSystem.out.println(cadena

    while(iterator.*asBext())iterator.next();

    iterator.remove();}

    System.out.println(cadena}

    }

    5ecorrieno Lists1 !or

  • 8/10/2019 Java Inicial para principiantes

    107/178

    www.belatrixsf.com |

    publicclassPrincipal {

    publicstaticvoidmain(String&' args) {Fist cadenas = new?rrayFist();cadenas.add("Wna cadena");cadenas.add("Atra cadena");

    for(inti = ; i M cadenas.sie(); i

  • 8/10/2019 Java Inicial para principiantes

    108/178

    www.belatrixsf.com |

    Acti'ia

    WM 7rear un collection. Agregar objetos e ti!o (tring

    BM terar en el collection -iterator o .get e list usano un bucle

    M 6n caa iteracin" com!arar con un 'alor eterminao. Al encAsignar el 'alor en una 'ariable # rom!er el bucle

    DM m!rimir el 'alor !or !antalla

    =i!ificar collections1 @enerics7

  • 8/10/2019 Java Inicial para principiantes

    109/178

    www.belatrixsf.com |

    Ja'a !ermite ti!ificar el contenio e un collection utili%ano gener

    esta forma se !uee es!ecificar e $u ti!o ser& el contenio el c+e esta forma" al obtener un elemento el mismo" en lugar e ser # tener $ue castear al ti!o objeti'o" el objeto obtenio ser& el ti!oen los @enerics.

    publicclassPrincipal {publicstaticvoidmain(String&' args) {

    FistMStringK cadenas = new?rrayFistMStringK();cadenas.add("Wna cadena");

    cadenas.add("Atra cadena");

    for(inti = ; i M cadenas.sie(); i

  • 8/10/2019 Java Inicial para principiantes

    110/178

    www.belatrixsf.com |

    Ja'a !ro'ee un o!eraor es!ecial !ara iterar en los elementos e

    7ollection1 la construccin foreac. 6sta construccin nos !ermiten un collection ti!ificao" en forma secuencial" sin necesia e !or

  • 8/10/2019 Java Inicial para principiantes

    111/178

    www.belatrixsf.com |

    ct a

    1(7rear una clase -o moificar una existente $ue tenga un ti!o enentre sus atributos -ejem!lo1 =i!o7ombustible" con 'alores +6(6

    sar for eac/ !ara iterar en los elementos el collection. Al encoasignarlo a una 'ariable" salir el bucle # encenerlo.

    7ollection Uramewor3 M )a!7

  • 8/10/2019 Java Inicial para principiantes

    112/178

    www.belatrixsf.com |

    )a!1 >n ma!a es una coleccin $ue asocia un 'alor con una leterminar en $u lugar el ma!a se guara un 'alor" se a!lic

    e /as/ a la lla'e. Io !ueen existir B 'alores con la misma lla>na lla'e #a existente" sobreescribe el 'alor actual. m!lemencom:n1 0as/)a!.

    publicinterface$apMXK { p!t(X Yey val!e); get(Ab%ect Yey);

    remove(Ab%ect Yey); booleancontainsXey(Ab%ect Yey); booleancontainsal!e(Ab%ect val!e); intsie(); booleanis-mpty(); voidp!t?ll($apMN extendsX N extendsK m);

    voidclear(); publicSetMXK YeySet(); public3ollectionMK val!es(

    public

    SetM$ap.-ntryMXKK e publicinterface-ntry { X getXey(); getal!e(); setal!e( val!e); }}

  • 8/10/2019 Java Inicial para principiantes

    113/178

  • 8/10/2019 Java Inicial para principiantes

    114/178

    Patrn singleton

    7

  • 8/10/2019 Java Inicial para principiantes

    115/178

    www.belatrixsf.com |

    (ingleton es un !atrn e ise`o utili%ao cuano se re$uiere soloBnica instancia de un o#"eto para toda la aplicaci!n. (e logra e/acieno su constructor !ri'ao" # creano un mtoo !:blico $uese encarga e e'ol'er su instancia -:nica" creano el objeto e snecesario. =oas las in'ocaciones al mtoo e'ol'er&n la misma

    6ste !atrn !ermite crear objetos e estao global" !ermite e'itar lae objetos innecesarios en memoria" !ermite el control centrali%aoacceso a recursos com!artios" etc.

    Patrn singleton

    7

  • 8/10/2019 Java Inicial para principiantes

    116/178

    www.belatrixsf.com |

    packagear.com.gestion.principal;

    publicclass-xpertoWs!arios {

    privatestatic-xpertoWs!arios e)pertoUsuarios= null;

    publicstatic-xpertoWs!arios getCnstancia() {if(e)pertoUsuarios== null) {

    e)pertoUsuarios= new-xpertoWs!arios();}

    returne)pertoUsuarios;}

    private-xpertoWs!arios() {}

    publicWs!ario crearWs!ario(String nombreWs!ario String contraseZa) {>> crear !s!ario

    }}

    nterfaces gr&ficas

    7

  • 8/10/2019 Java Inicial para principiantes

    117/178

    www.belatrixsf.com |

    Ja'a ofrece una biblioteca !ara construs -@ra!/ic >ser nte

    (TI@. 5eem!la% a la antigua biblioteca e @>s e Ja'a" AT-actualmente en esuso.

    0a# os formas e organi%ar las 'entanas en swing1

    SDI1 iferentes 'entanas" se!araas e ine!enientes

    8DI1 'entanas contenias entro e una misma 'entana !rin

  • 8/10/2019 Java Inicial para principiantes

    118/178

    Ventanas1 JUrame

    7

  • 8/10/2019 Java Inicial para principiantes

    119/178

    www.belatrixsf.com |

    JUrame !ermite 'arias acciones e cierre -clic3 en la e la 'en

    JUrame.DIS96SEC6C56SE1 cierra el JUrame actual. (i:ltimo JUrame" la a!licacin termina

    JUrame.EITC6C56SE1 termina la a!licacin

    JUrame.D6C6TIFC6C56SE1 es/abilita la e la

    JUrame.IDEC6C56SE1 escone la 'entana. Puee 'olmostrarse !osteriormente -'isible 8 true # estao 8 (tate.I*

    A!licacin1 B 'entanas JUram

    7

  • 8/10/2019 Java Inicial para principiantes

    120/178

    www.belatrixsf.com |

    import%avax.s7ing.69rame;

    publicclassPrincipal { publicstaticvoidmain(String&' args) { 69rame ventana = new69rame(); ventana.setTitle("$i primera ventana"); ventana.setSie( /); ventana.setFocation( ); ventana.setisible(true); ventana.setHeRa!lt3loseAperation(69rame.IS*OSE+ON+CLOSE);

    69rame ventana/ = new69rame(); ventana/.setTitle("$i seg!nda ventana"); ventana/.setSie( /); ventana/.setFocation(I ); ventana/.setisible(true); ventana/.setHeRa!lt3loseAperation(69rame.IS*OSE+ON+CLOSE); }}

    La#outs

    7

  • 8/10/2019 Java Inicial para principiantes

    121/178

    www.belatrixsf.com |

    Puee efinirse un la#out !ara too com!onente conteneor e

    com!onentes. 6l la#out efine cu&l ser& la ubicacin e loscom!onentes $ue se agreguen al conteneor. 6l la#out se es!ecusano el mtoo GsetLa#outH e los conteneores. Algunos ejem

    GoA5aHout1 coloca los com!onentes 'erticalmente.

    3lo25aHout1 coloca los com!onentes /ori%ontalmente.

    null1 eja la ubicacin en nuestras manos" meiante el uso Gabsolute !ositioningH -coorenaas cartesianas.

    Labels1 JLabel

    7

  • 8/10/2019 Java Inicial para principiantes

    122/178

    www.belatrixsf.com |

    La clase JLabel !ermite efinir una eti$ueta E un elemento $ue m

    texto en su interior.

    )toos :tiles1

    setTeAt1 efine un texto !ara la eti$ueta

    getTeAt1 obtiene el texto $ue la eti$ueta muestra actualment

    6Fabel label = new6Fabel("$i primera eti:!eta");

    ;otones1 J;utton7

  • 8/10/2019 Java Inicial para principiantes

    123/178

    www.belatrixsf.com |

    La clase J;utton !ermite efinir un botn" el texto $ue muestra #

    un e'ento.

    64!tton boton = new64!tton();boton.add?ctionFistener(new?ctionFistener() {

    @AverridepublicvoidactionPerRormed(?ction-vent event) {

    6AptionPane.s,o-Messa"eia'o"(contenedor "Texto");}

    });

    n!uts1 J=extUiel

    7

  • 8/10/2019 Java Inicial para principiantes

    124/178

    www.belatrixsf.com |

    La clase J=extUiel !ermite efinir casillas e texto $ue ser&n utili%!or un usuario !ara introucir atos en el sistema.

    Poemos mani!ular el texto $ue los mismos muestran a tra's eGset=extH" # recu!erar su contenio a tra's el mtoo Gget=extH.

    6Text9ield text9ield = new6Text9ield();text9ield.setText("Texto a mostrar inicialmente");

    =ablas1 J=able

    7

  • 8/10/2019 Java Inicial para principiantes

    125/178

    www.belatrixsf.com |

    La clase J=able !ermite crear una tabla. (e !ermite la efinicin columnas $ue !osteriormente !oremos !oblar" !ara mostrar infoen forma tabular. J=able mantiene internamente un moelo con lainformacin e columnas $ue est& mostrano" # las filas $ue contun momento ao. niciali%acin1

    6Table tabla = new6Table();tabla.set$odel(new%avax.s7ing.table.HeRa!ltTable$odel(newAb%ect&'&'{ "Pedro" "GonQle"} { "$art+n" "F[pe"} }newString&' { "Bombre" "?pellido"}));

    =ablas1 J=able

    7

  • 8/10/2019 Java Inicial para principiantes

    126/178

    www.belatrixsf.com |

    *btencin el moelo e la tabla1

    HeRa!ltTable$odel model = (HeRa!ltTable$odel) tabla.get$odel();

    Agregar fila1

    model.addDo7(newAb%ect&'{"6!an" "Pre"});

    5ecu!erar !osicin -e'ol'er& GL!e%H1

    model.getal!e?t(1 1);

    =ablas1 J=able

    7

  • 8/10/2019 Java Inicial para principiantes

    127/178

    www.belatrixsf.com |

    Para /acer 'isible una tabla # brinar funcionalia e GscrollH" esnecesario colocar la misma en el interior e un J(crollPane. 6stecom!onente es un conteneor $ue !ro!orciona scrollbars.

    >tili%acin1

    6ScrollPane scroll = new6ScrollPane();scroll.set4o!nds( 1);scroll.setisible(true);scroll.setie7portie7(tabla);

    7onteneor1 JPanel

    7

  • 8/10/2019 Java Inicial para principiantes

    128/178

    www.belatrixsf.com |

    La clase JPanel !ermite efinir un conteneor e com!onentes" a

    !oemos agregar com!onentes !ara mani!ularlos como a un to

    >n JPanel !ermite efinir un La#out e la misma forma $ue una '6sto facilita el trabajo a la /ora e eciir cmo $ueremos $ue nucom!onentes se 'ean en !antalla" #a $ue !oemos efinir m:lti!!aneles" # $ue caa uno efina su !ro!io La#out.

    6Panel panel = new6Panel();panel.setFayo!t(new9lo7Fayo!t());

    +i&logos1 J+ialog

    7

  • 8/10/2019 Java Inicial para principiantes

    129/178

    www.belatrixsf.com |

    >n +ialog es una sub'entana ine!eniente e la 'enana !rinci!

    estinaa a mostrar un mensaje al usuario. La ma#or

  • 8/10/2019 Java Inicial para principiantes

    130/178

  • 8/10/2019 Java Inicial para principiantes

    131/178

    +i&logos1 J+ialog M 6jem!los

    7

  • 8/10/2019 Java Inicial para principiantes

    132/178

    www.belatrixsf.com |

    onfirm Dialog1 muestra una 'entana con botones1 (

  • 8/10/2019 Java Inicial para principiantes

    133/178

    www.belatrixsf.com |

    6ption Dialog1 muestra una 'entana con un mensaje # botones

    !or nosotros. 7reacin1 J*!tionPane.s/ow*!tion+ialog -'er Ja'a

    String&' opciones = {"S+" "Bo" "3ancelar"}; 6AptionPane.s,o-Optionia'o"(panel "\!iere g!ardar s!s cambios antes de "G!ardar y salir" 6AptionPane..ES+NO+CANCEL+O*TION

    6AptionPane./UESTION+MESSA!E null opciones null);

    Acti'ia

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    134/178

    www.belatrixsf.com |

    1(7rear una clase main. 7rear un JUrame. Agregar un cam!o eun botn.

  • 8/10/2019 Java Inicial para principiantes

    135/178

    www.belatrixsf.com |

    (e utili%an los siguientes com!onentes1

    JDes>top9ane1 Panel $ue !uee contener otras 'entanas en interior.

    JInternal3rame1Ventana $ue !uee ser contenia entro e u

    J+es3to!Pane.6l conteneor J+es3to!Pane ebe estar incluio entro e una 'enJUrame.

    )+1 Ventanas internas7

  • 8/10/2019 Java Inicial para principiantes

    136/178

    www.belatrixsf.com |

    publicclassPrincipal extends69rame { publicstaticvoidmain(String&' args) { 6HesYtopPane desYtop = new6HesYtopPane(); desYtop.setSie(2 /); desYtop.setisible(true);

    6Cnternal9rame primeraCnternal9rame =new6Cnternal9rame("entana 1");

    primeraCnternal9rame.setSie( 1); primeraCnternal9rame.setisible(true);

    6Cnternal9rame seg!ndaCnternal9rame =

    new6Cnternal9rame("entana /"); seg!ndaCnternal9rame.setSie( 1);

    seg!ndaCnternal9rame.setSi

    seg!ndaCnternal9rame.setis seg!ndaCnternal9rame.setFo

    Principal ventana = newPri ventana.add(desYtop); ventana.setSie(2 /); desYtop.add(primeraCnternal desYtop.add(seg!ndaCnternal

    ventana.setisible(true);

    }}

    )+1 *renano el cigo7

  • 8/10/2019 Java Inicial para principiantes

    137/178

    www.belatrixsf.com |

    6l cigo anterior muestra una alarmante u!licacin e cigo.JnternalUrame creaos son !r&cticamente inticos. =ener uncom!onente !ro!io $ue efina las !ro!ieaes !or efecto $ue 'a utili%ar !ara toa nuestra a!licacin ser

  • 8/10/2019 Java Inicial para principiantes

    138/178

    www.belatrixsf.com |

    import%avax.s7ing.6Cnternal9rame;

    publicclass$iCnternal9rame extends6Cnternal9rame {public$iCnternal9rame(String tit!lo intx inty

    intanc*o intalto) {super(tit!lo);this.setFocation(x y);this.setSie(anc*o alto);this.setisible(true);

    }}

    import%avax.s7ing.6HesYtopPa

    publicclass$iHesYtopPane expublic$iHesYtopPane(in

    this.setSie(anc*this.setisible(t

    }}

    )+1 *renano el cigo7

    publicclassPrincipal extends69rame {public Principal(int alto int anc*o) {

  • 8/10/2019 Java Inicial para principiantes

    139/178

    www.belatrixsf.com |

    publicPrincipal(intalto intanc*o) {this.setSie(alto anc*o);this.setisible(true);

    }

    publicstaticvoidmain(String&' args) { $iHesYtopPane desYtop = new$iHesYtopPane(2 /);

    $iCnternal9rame primeraCnternal9rame = new$iCnternal9rame("entana 1" $iCnternal9rame seg!ndaCnternal9rame = new$iCnternal9rame("entana /" I

    Principal ventana = newPrincipal(2 /); ventana.add(desYtop);

    desYtop.add(primeraCnternal9rame); desYtop.add(seg!ndaCnternal9rame);

    ventana.setisible(true); }}

    )+1 )ensajes internos7

    La contra!arte e las 'entanas e i&logo e (+ son las 'entan

  • 8/10/2019 Java Inicial para principiantes

    140/178

    www.belatrixsf.com |

    La contra!arte e las 'entanas e i&logo e (+ son las 'entan

    i&logo internas. Las mismas !ueen ser creao meiante mtosimilares e la clase J*!tionPane" solo $ue generalmente los mtienen la !alabra GnternalH !ara istinguirlos e las 'entanas. 6je

    6AptionPane.s,o-Interna'Messa"eia'o"(desYtop "$ensa%e interno");

    Acti'ia

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    141/178

    www.belatrixsf.com |

    1(7rear una clase main. 7rear un JUrame. 7rear un J+es3to!Pa7rear un JnternalUrame entro el es3to! !ane.

  • 8/10/2019 Java Inicial para principiantes

    142/178

    www.belatrixsf.com |

    6l manejo e e'entos en (wing se im!lementa a tra's e Listen$ue se encuentran monitoreano un com!onente a la es!era e $!rou%ca un e'ento eterminao" !ara tomar una accin en cons

    Los com!onentes !ueen contener una lista e objetos Gsuscri!toeterminao e'ento" # en el momento en $ue se !rou%ca ic/o

    notificar& a toos los suscri!tos $ue /a llegao el momento e ac

    6sto corres!one con el !atrn e ise`o G*bser'aorH.

  • 8/10/2019 Java Inicial para principiantes

    143/178

  • 8/10/2019 Java Inicial para principiantes

    144/178

    )anejaores e e'entos

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    145/178

    www.belatrixsf.com |

    Para im!lementar un manejaor e e'entos" se !ro'een interfacesti!o e e'entos !osibles. 6n el ejem!lo anterior" ActionListener es !ro'ista !ara manejar e'entos e GaccinH -en el caso e los botonclic3. +ic/a interfa% obliga a im!lementar el mtoo GactionPerfores el !roceso $ue se ejecutar& cuano se lle'e a cabo la corres!oaccin. La clase $ue im!lementa ActionListener es el Gobser'aorH

    Las im!lementaciones e manejaores e e'entos !ueen recibir el e'ento en el !ar&metro GAction6'entH -!or ejem!lo" cu&no se

    Ventaja e Ietbeans +6 !ara (

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    146/178

    www.belatrixsf.com |

    Ietbeans !ro!orciona /erramientas !ara la construccin e interf(wing meiante un mu# com!leto eitor gr&fico. 6l mismo es acc6n la !esta`a G+esignH e una clase $ue re!resente un com!oneAlgunos a!artaos mu# :tiles $ue ofrece !ara los com!onentes s

    Pro!erties1 efine 'alores !ara las !ro!ieaes el com!one

    6'ents1 !ermite efinir e'entos e istintos ti!os !ara el comactual

    Acti'ia

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    147/178

    www.belatrixsf.com |

    1(7rear una interfa% gr&fica -(+ o )+" a gusto. Agregar un in!botn # una tabla con una sola columna.

  • 8/10/2019 Java Inicial para principiantes

    148/178

    www.belatrixsf.com |

    J>nit es un framewor3 e !ruebas unitarias !ara Ja'a. Permite ecasos e !rueba $ue ejecutar&n el cigo existente con ciertos!ar&metros !reestablecios # e'aluar&n $ue el resultao sea el6s!erao.

    La iea es constru

  • 8/10/2019 Java Inicial para principiantes

    149/178

    www.belatrixsf.com |

    J>nit sir'e un oble !ro!sito1

    Permite asegurar $ue el cigo entregao res!one e aculos re$uerimientos.

    Protege el cigo e futuros cambios. (i un esarrollaor ca

    un fragmento e cigo introucieno efectos en el cigotenemos tests e unia !ara ese fragmento" ebernit framewor3+6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    150/178

    www.belatrixsf.com |

    Por lo general se inclu#e entre los !asos e com!ilacin un !asoejecuta los tests e unia e la a!licacin. )a'en !ermite esto

    Las :ltimas 'ersiones e J>nit !ermiten configurar los tests utili%anotaciones" lo cual facilita muc/o el trabajo.

    =anto Ietbeans como 6cli!se inclu#en entre los ti!os e arc/i'o!ueen ser creaos la o!cin e crear J>nits. 6sto genera una cb&sica con un mtoo e test.

    J>nit framewor3 M 6jem!lo+6 E @eneraliae

    importstaticorg.%!nit.?ssert.#;import org.%!nit.?Rter;

  • 8/10/2019 Java Inicial para principiantes

    151/178

    www.belatrixsf.com |

    importorg.%!nit.?Rter;importorg.%!nit.4eRore;

    importorg.%!nit.Test;

    publicclass$iTestHeWnidad {@4eRorepublicvoidsetWp() throws-xception {}

    @?RterpublicvoidtearHo7n() throws-xception {}

    @Testpublicvoidtest() {

    (ai'("Bot yet implemented");}

    }

    J>nit framewor3 M Anotacione+6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    152/178

    www.belatrixsf.com |

    Gefore1 anota un mtoo $ue ebe ejecutarse antes e comla ejecucin e caa mtoo e la clase actual

    4fter1 anota un mtoo $ue ebe ejecutarse al finali%ar la eje e caa mtoo e la clase actual

    Test1 anota un mtoo $ue re!resenta un test unitario. 6l tessi lan%a una exce!cin -!or ejem!lo" si falla un assert.

    J>nit framewor3 M Anotacione+6 E @eneraliae

    Ignore1 anota un mtoo2clase $ue ebe ignorarse al ejecut

  • 8/10/2019 Java Inicial para principiantes

    153/178

    www.belatrixsf.com |

    Ignore1anota un mtoo2clase $ue ebe ignorarse al ejecut

    tests e unia.

    Geforelass1 anota un mtoo $ue ebe ser ejecutao una antes e ejecutar los mtoos e la clase.

    4fterlass1 anota un mtoo $ue ebe ser ejecutao una :

    al terminar e ejecutar los mtoos e la clase.

    J>nit framewor3 M Anotacione+6 E @eneraliae

    Testtimeout = LLM1el !ar&metro timeout e un test e uni

  • 8/10/2019 Java Inicial para principiantes

    154/178

    www.belatrixsf.com |

    !ermite efinir un tiem!o m&ximo e ejecucin !ara el test. (i seste tiem!o" el test fallar&. 6l 'alor es numrico" # re!resenta tmilisegunos.

    TesteApected = ull9ointerEAceptionNclassM1 el !ar&metrinica $ue la ejecucin el test e unia es!era $ue se lance

    exce!cin es!ecificaa. 6l !ar&metro es una clase. 6n caso lance la exce!cin" el test finali%a exitosamente. (ino" falla. (ir!robar casos $ue ebernit framewor3 M Asserts+6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    155/178

    www.belatrixsf.com |

    Los tests e unia son utili%aos !ara !robar $ue ciertas coniccum!len. Para reali%ar estas com!robaciones con !oco esfuer%oinclu#e una clase llamaa GAssertsH $ue !ro!orciona mtoos $ue!ueen ser in'ocaos est&ticamente" # son mu# :tiles.

    6l constructor e la clase Asserts es !rotegio ebio a $ue est&

    !ara ser utili%aa a tra's e sus mtoos est&ticos.

    J>nit framewor3 M Asserts+6 E @eneraliae

    assertEqualseApectedO actualM1 com!ara ambos 'alores" e

  • 8/10/2019 Java Inicial para principiantes

    156/178

    www.belatrixsf.com |

    es!erao # el resultao. (i son iguales no /ace naa" si soniferentes lan%a una 6xce!cin -el test falla.

    assertTrue * assert3alse1 reciben como !ar&metro una ex!r;ooleana. 6l !rimero com!ara con el 'alor true" el seguno c(i falla la com!aracin" lan%a una exce!cin.

    assertull * assertotull1 reciben como !ar&metro un objere'isa $ue sea 2 no sea nulo.

    +6 E @eneraliae

  • 8/10/2019 Java Inicial para principiantes

    157/178

    www.belatrixsf.com |

    Acti'ia+6 E @eneraliae

    1 7 l t ib bj t

  • 8/10/2019 Java Inicial para principiantes

    158/178

    www.belatrixsf.com |

    1(7rear una clase con un mtoo $ue recibe objetos como !arguare entro e un collection # retorne el collection.

    sar asserts !ara !robcollection tenga la cantia e elementos correctos" # $ue contenobjetos $ue !asamos como !ar&metro.

    (7orrer el test e unia # 'erificar $ue tenga xito

  • 8/10/2019 Java Inicial para principiantes

    159/178

  • 8/10/2019 Java Inicial para principiantes

    160/178

    6xce!ciones+6 E @eneraliae

    Las clases 6xce!tion son clases Ja'a como cual$uier otra" con la

  • 8/10/2019 Java Inicial para principiantes

    161/178

    www.belatrixsf.com |

    ! $ "

    !articularia e $ue /erean e la clase =/rowable" la cual extie*bject.

    =/rowable tiene B subclases1

    EAception1 re!resentan situaciones exce!cionales.

    Error1 re!resentan errores irrecu!erables -ej1 *6rror.

    6xce!ciones+6 E @eneraliae

    La !rimera e las clasificaciones" las exce!ciones" !ueen i'iir

  • 8/10/2019 Java Inicial para principiantes

    162/178

    www.belatrixsf.com |

    ! " ! " !

    os e acuero a si el com!ilaor nos obliga o no a manejarlas1

    ec>ed1 el com!ilaor obliga al !rogramaor a manejar el Io lo /ace" el cigo no com!ilar&.

    Pncec>ed1 no exigen $ue el !rogramaor maneje el error.

    subclases e la clase 5untime6xce!tion -$ue extiene e 6xo la clase 6rror.

    6xce!ciones+6 E @eneraliae

    *bject

  • 8/10/2019 Java Inicial para principiantes

    163/178

    www.belatrixsf.com |

    6xce!tion

    =/rowable

    6rror

    5untime6xce!tion

    6xce!ciones M (intaxis+6 E @eneraliae

    0a# !alabras blo$ues asociaos a exce!ciones1

  • 8/10/2019 Java Inicial para principiantes

    164/178

    www.belatrixsf.com |

    # ! $ !

    trH1 inica $ue las instrucciones el blo$ue son G!eligrosasH" $ulan%ar una exce!cin.

    catc1 es!ecifica $u exce!cin se es!era" # cmo se lle'ar& manejo e la misma.

    finallH1 inica un conjunto e instrucciones $ue se ejecutar&n slo $ue sucea" se lance o no una exce!cin.

    +6 E @eneraliae

    public class -%emplo-xcepciones {

    6xce!ciones E >nc/ec3e

  • 8/10/2019 Java Inicial para principiantes

    165/178

    www.belatrixsf.com |

    -xception in t*read "main" %ava.lang.?rit*metic-xceptionO > by eroat -%emplo-xcepciones.dividir-nteros(-%emplo-xcepciones.%avaO1/)at -%emplo-xcepciones.main(-%emplo-xcepciones.%avaOI)

    publicclass-%emplo-xcepciones {

    publicstaticvoidmain(String&' args) {#i&i#irEnteros(1 );

    }

    publicstaticdoubledividir-nteros(intdividendo intdivisor) {returndividendo > divisor;

    }}

    6xce!ciones E >nc/ec3e+6 E @eneraliae

    7omo 'imos en la filmina anterior" es !osible /acer $ue la exce!ciun mensaje !or s< misma. (in embargo" esto !uee ser :til !ara el

  • 8/10/2019 Java Inicial para principiantes

    166/178

    www.belatrixsf.com |

    esarrollaor" !ero la im!resin el stac3trace !or consola !uee nagraable !ara el usuario final. 6l cigo no lan% un error e com!ebio a $ue la exce!cin $ue lan%a -Arit/metic6xce!tion es una e 5untime6xce!tion -unc/ec3e.

    Poemos /acer $ue el cigo nos a'ise $ue el mtoo reali%a algo

    usano en la efinicin el mtoo la sentencia Gt/rows 6xce!tionHsentencia en'

  • 8/10/2019 Java Inicial para principiantes

    167/178

    www.belatrixsf.com |

    publicclass-%emplo-xcepciones {

    publicstaticvoidmain(String&' args) {intres!ltado = #i&i#irEnteros( );System.out.print("Des!ltadoO "< res!ltado);

    }

    publicstaticintdividir-nteros(intdividendo intdivisor) throws-xception returndividendo > divisor;

    }}

    lan%arse una 6xce!tion -c/ec3e" # no se /ace naa !or manejel in'ocaor1

    6xce!ciones E Atra!ano+6 E @eneraliae

    Poemos ejecutar el cigo riesgoso entro e un blo$ue tr# # !ro!

  • 8/10/2019 Java Inicial para principiantes

    168/178

    www.belatrixsf.com |

    un manejo e exce!cin m&s amistoso.

    La 'entaja e reali%ar esto es $ue tenemos control sobre cmo $uela a!licacin reaccione ante esta situacin !oco com:n -aun$ue !o

    6n algunas coniciones !or

  • 8/10/2019 Java Inicial para principiantes

    169/178

    www.belatrixsf.com |

    publicstaticintdividir-nteros(intdividendo intdivisor) {

    intres!ltado = ;try{

    res!ltado = dividendo > divisor;} catch(?rit*metic-xception e) {

    System.out.print("Bo p!ede realiarse !na divisi[n de enteros para los pSystem.out.print(dividendo);System.out.print(" > ");System.out.print(divisor);

    } finally{System.out.println("3Qlc!lo terminado.");

    }

    returnres!ltado;}

    }

    6xce!ciones E Atra!ano m&s e

    +6 E @eneraliae

    Poemos manejar m&s e una exce!cin en el mismo blo$ue tr#2c

  • 8/10/2019 Java Inicial para principiantes

    170/178

    www.belatrixsf.com |

    manejamos la exce!cin G6xce!tionH" este blo$ue catc/ ebe ser cfinal -#a $ue toas las exce!ciones extienen e 6xce!tion" # !or losiem!re entrar&n !or ese blo$ue.

    6n l

  • 8/10/2019 Java Inicial para principiantes

    171/178

    www.belatrixsf.com |

    System.out.print("Des!ltadoO "< res!ltado);}

    publicstaticintdividir-nteros(intdividendo intdivisor) {intres!ltado = ;try{

    res!ltado = dividendo > divisor;} catch(?rit*metic-xception e) {

    System.out.print("Bo p!ede realiarse !na divisi[n de enteros sobre} catch(-xception ex) {

    System.out.print("a oc!rrido !n error inesperado. 3ontacte con !n ad

    }

    returnres!ltado;}

    }

    Acti'ia

    +6 E @eneraliae

    1(7rear un mtoo $ue reciba os strings como !ar&metro. +ic/

  • 8/10/2019 Java Inicial para principiantes

    172/178

    www.belatrixsf.com |

    $ g !

    ebe reali%ar una con'ersin e los (trings a +ouble" # reali%ar uentre ellos

  • 8/10/2019 Java Inicial para principiantes

    173/178

    www.belatrixsf.com |

    cum!lieno con los re$uisitos $ue /emos ex!licao anteriormen

    +eben /erear irecta o inirectamente e =/rowable.

    Pueen ser c/ec3e o unc/ec3e -re'isar e $u claseextenemos.

    Pueen tener atributos # mtoos" e incluso mostrar un menefinio !or nosotros -!ar&metro o efinio en la clase

    Iuestras !ro!ias exce!cione

    +6 E @eneraliae

    publicstaticintdividir-nteros(intdividendo intdivisor) {intres!ltado = ;try{

  • 8/10/2019 Java Inicial para principiantes

    174/178

    www.belatrixsf.com |

    publicclassHivisionPor3ero-xception extendsD!ntime-xception {

    publicHivisionPor3ero-xception(intdividendo) {super("Bo se p!ede dividir "< dividendo < " entre .");

    }}

    res!ltado = dividendo > divisor;} catch(?rit*metic-xception e) {

    thrownewHivisionPor3ero-xception(dividendo);}

    returnres!ltado;}

    Acti'ia

    +6 E @eneraliae

    1(7rear os exce!ciones !ro!ias" c/ec3e1 i'isin !or cero # ercon'ertir (tring a n:mero.

  • 8/10/2019 Java Inicial para principiantes

    175/178

    www.belatrixsf.com |

    g

  • 8/10/2019 Java Inicial para principiantes

    176/178

    www.belatrixsf.com |

    Consulta

    Pro#ecto

    7lases e

    (e esarrollar& el sistema !ro!uesto" o uno $ue los alumnos elijan.

  • 8/10/2019 Java Inicial para principiantes

    177/178

    www.belatrixsf.com |

    6l trabajo eber& !ro#ectar los conocimientos a!renios en el curs

    (e consierar& con mejor calificacin a los gru!os $ue com!leten e

    (e consierar& con mejor calificacin a los gru!os $ue realicen los !

  • 8/10/2019 Java Inicial para principiantes

    178/178