Interfaces Java.

download Interfaces Java.

of 23

Transcript of Interfaces Java.

  • 8/18/2019 Interfaces Java.

    1/23

    Interfaces

  • 8/18/2019 Interfaces Java.

    2/23

    Para que sirven las interfaces

    Ventajas de la herencia.

    1. Favorecer el mantenimiento y la extensión de las aplicaciones. ¿Porqué Porque al definir interfaces permitimos la existencia devariables polimórficas y la invocación polimórfica de métodos.

    ". #tra ventaja clara de las interfaces es que nos permiten declararconstantes que van a estar disponi$les para todas las clases quequeramos %implementando esa interfa&'. (os ahorra códi)o evitandotener que escri$ir las mismas declaraciones de constantes endiferentes clases.

  • 8/18/2019 Interfaces Java.

    3/23

    IMPLEMENTAR NA INTER!A"E #EL API $A%A.E$EMPL&.

    *l +PI de ,ava define interfaces que aparte de usarlas para definirtipos- nosotros podemos implementar en una clase propia en nuestrocódi)o.

    Para utili&ar interfaces- como la interfa& ompara$le- ha$remos deescri$ir en ca$ecera de la clase/

    pu$lic class (om$re0ealase implements ompara$le2(om$re0ealase3 4 5 6

  • 8/18/2019 Interfaces Java.

    4/23

    '()é interés tiene implementar )na interfacedel API si no nos proporciona códi*o nin*)no+

    7na interface puede verse en relación a la pro)ramación como unanorma ur$an8stica en una ciudad.

    9i lees la documentación de la interfa&- aunque no proporcionacódi)o- s8 proporciona instrucciones respecto a caracter8sticascomunes para las clases que la implementen y define qué métodoshan de incluirse para cumplir con la interfa& y para qué servir:n esos

    métodos.

    9i implementamos la interface- lo que hacemos es ajustarnos a lanorma.

  • 8/18/2019 Interfaces Java.

    5/23

    '()é interés tiene implementar )na interfacedel API si no nos proporciona códi*o nin*)no+

    uando un pro)ramador tiene que continuar un pro)rama iniciado por otro notiene que pre)untarse/ ¿qué método podré usar para comparar varios o$jetosde este tipo y ponerlos en orden ; no hay que pre)unt:rselo porque en)eneral los pro)ramadores se ci' se implementala interfa& ompara$le y su método compare?o%'. ; adem:s- ya sa$emos quétipo ha de devolver ese método y cómo ha de funcionar- porque as8 lo indica

    la documentación de la interface. @uchas clases del +PI de ,ava ya tienen implementada la interface

    ompara$le. Por ejemplo la clase Inte)er tiene implementada esta interfa&-lo que si)nifica que el método compare?o%' es un método disponi$le paracualquier o$jeto de tipo Inte)er.

  • 8/18/2019 Interfaces Java.

    6/23

    IN,TR""I-N PE#IR "&N $A%A. EL$TET!IEL#. EL M/T& 0ETTET.

    a forma de pedir datos con ,ava a través de un control visual resulta untanto distinta a la inserción de datos a través de consola. 7na petición dedatos- se reali&ar: a través de un o$jeto prefa$ricado de la clase ,?extField.

  • 8/18/2019 Interfaces Java.

    7/23

  • 8/18/2019 Interfaces Java.

    8/23

  • 8/18/2019 Interfaces Java.

    9/23

    %1' Paquete

    *n este punto- se usa la sentencia import1 para declarar los paquetesque emplearemos en nuestro pro)rama. *xplicar- que un paquete esal)o similar a una ruta- donde se encuentran las clases que

    utili&aremos en el pro)rama.  *n nuestro caso- $Text!ield1 $Panel1 $!rame1 son clases que

    pertenecen al paquete 2avax.s3in*- as8 como laclase "olor pertenece al paquete 2ava.a3t.

    os paquetes forman parte de java- lo Anico que hacemos nosotros escar)arlos para poder usarlos en nuestro pro)rama.

  • 8/18/2019 Interfaces Java.

    10/23

    %"' Formulario

    Pro*rama extends $!rame. a idea de esta sentencia- es hacer quenuestro pro)rama ten)a el comportamiento de un formulario %ventana

    BindoCs' y para ello de$emos heredar %extends' de ,Frame- susparticularidades. ,Frame- es una clase que tiene todas lascaracter8sticas propias de una ventana en BindoCs. + partir de estepunto- nuestro pro)rama deja de ser un pro)rama de consola 0#9 ypasa a ser un pro)rama visual tipo ventana BindoCs.

  • 8/18/2019 Interfaces Java.

    11/23

    %D' ontroles del formulario

    +qu8- se crean los o$jetos de los controles visuales que se mostrar:nen el formulario. *l primer o$jeto que vemos es jpanel- mencionar-

    que es un nom$re cualquiera y pertenece a la clase $Panel. * o$jetojpanel- es lo que se llama un contenedor1 que como su propionom$re indica- va a contener a los dem:s controles visuales. *s decir-que los controles visuales no se ponen directamente en el formulario-sino en el contenedor- colocado éste encima del formulario. *lsi)uiente o$jeto es jtextfield- perteneciente a laclase$Text!ield5 este o$jetojtextfield- contiene el control visual para

    pedir un dato al usuario y tiene la apariencia de una caja parain)resar texto %text$ox'.

  • 8/18/2019 Interfaces Java.

    12/23

    %E' onstructor del formulario

    9i se o$serva- es una estructura i)ual a un método- que se inicia conuna apertura de llave =4= y termina con la clausura de la llave =6>.

    *ntre dichas llaves se procede a dar a los o$jetos- que representan alos controles visuales- los atri$utos. ?am$ién a

  • 8/18/2019 Interfaces Java.

    13/23

    %' Propiedades del contenedor del formulario

    o que es un contenedor- ya fue explicado en el punto D. +hora aqu8-explicaremos las si)uientes instrucciones relacionadas al contenedor/

    .6 2panel.setLayo)t7n)ll8. *sta instrucción si)nifica- que alpasarle n)ll como par:metro al método setLayo)t1 nuestrocontenedor- representado a través del o$jeto 2panel- no administrar:la forma de colocar los controles en el contenedor- sino que dejar:que esa la$or la realice el pro)ramador a través de coordenadas.

    .6 2panel.set9ac:*ro)nd7"olor.li*;t0ray8. +lpasarse "olor.li*;t0ray1 como par:metro delmétodo set9ac:*ro)nd1 le decimos al contenedor- representado en elo$jeto jpanel- que tome un color de fondo )ris suave. +hora- siquisiéramos usar otro color de fondo- como el color verde- usar8amosel par:metro "olor.*reen1  y de i)ual manera para otros colores.

     

  • 8/18/2019 Interfaces Java.

    14/23

    %G' Propiedades de los controles.

    *n este punto- esta$leceremos a través de propiedades- la apariencia denuestros controles visuales. *n este ejemplo- el control visual ser: unacaja de texto para in)resar datos- representados en el

    o$jeto 2textfield1 para lo cual explicaremos las instrucciones si)uientes/ .6 2textfield.set9o)nds7ne3 Rectan*le7=1

  • 8/18/2019 Interfaces Java.

    15/23

    %G' Propiedades de los controles.

    .6 2textfield.setEditable7false8. 9i esta instrucción- est: esta$lecidaen true- permite que se pueda escri$ir so$re el ,?extField. 9i est:

    esta$lecida en false- impide que el usuario pueda modificar elcontenido del ,?extField.

    .6 2textfield.setBoriontalAli*nment7$Text!ield.LE!T8.*l par:metro*F?- permite que el texto en la caja de texto- se alinee a lai&quierda- el par:metro *(?* al centro y el IJK? a la derecha.

  • 8/18/2019 Interfaces Java.

    16/23

    %L' +dición de los controles al contenedor

    .6 2panel.add72textfield1 n)ll8. *l método add pertenece a laclase $panel. *ste método- es usado para a

  • 8/18/2019 Interfaces Java.

    17/23

    %M' Propiedades del formulario

    7n formulario tiene una apariencia visual por defecto- por ejemplo eltama=?8.7$ica la esquina superior i&quierda del

    formulario en la pantalla- en la coordenada%DHH-1H'N%x-y'N%columna-fila'.

     .O setTitle7@!orm>@8. a cadena =Form1>- como par:metro delmétodo setTitle1 si)nifica que se esta$lecer: como t8tulo del

    formulario la cadena =Form1>. .6 set%isible7tr)e8. *ste par:metro tr)e1 del

    método set%isible1 determina que el formulario sea visi$le en lapantalla- ya que si ponemos false1 el formulario est: en la pantalla deforma invisi$le.

  • 8/18/2019 Interfaces Java.

    18/23

    %' @étodos del formulario

    *n este punto se definen los métodos que se necesitan para reali&arlas tareas que dise

  • 8/18/2019 Interfaces Java.

    19/23

    EL M/T& 0ETTET

    *l contenido que introduce un usuario a través de un ,?extField-tienecar:cter de texto. Para trasladar dicho contenido a una varia$le- se usa lafunción o método )et?ext. a sintaxis a emplear es/

    9trin) cadena N jtextfield.)et?ext%'Q

  • 8/18/2019 Interfaces Java.

    20/23

    9i deseamos convertir el valor retornado por lainstrucción 2textfield.*etText78-en forma de texto- que se reci$ió en lavaria$le cadena- a un valor en forma de nAmero- la sintaxis es la si)uiente/

      float a N Float.parseFloat%cadena'Q

  • 8/18/2019 Interfaces Java.

    21/23

    *sto supone- que la varia$le a- que ha sido definida como tipo float- adoptael contenido numérico del ,?extField.

    a función *etText1 no elimina los espacios en $lanco- ni los ta$uladores nilos avances de l8nea. Para suprimirlos- podemos aplicar el ejemplo si)uiente/

    9trin) cadena N = DM"H =Q

    9trin) cadenalimpia N cadena.trim%'Q RR0evuelve =DM"H> como cadena

    float a N Float.parseFloat%cadenalimpia'Q RR0evuelve DM"H como nAmero real

  • 8/18/2019 Interfaces Java.

    22/23

    #tra forma relevante de pedir datos con ,ava- consiste en el uso de ventanas dedialo)o de petición de datos %,#ptionPane.shoCInput0ialo)'. uando se invoca lafunción ,#ptionPane.shoCInput0ialo)- se desplie)a una ventana independiente-

    con un mensaje definido de solicitud de datos al usuario- que dispone de unacaja de texto asociado para responder y de $otones para aceptar o cancelar. a

    sintaxis es/

     9trin) s N ,#ptionPane.shoCInput0ialo)%SIntrodu&ca un nAmeroS-SIntroducción

    nAmeroS'Q 

    donde =s> es una varia$le- que toma el valor que haya introducido elusuario en forma de cadena.

  • 8/18/2019 Interfaces Java.

    23/23

    Ti$lio)raf8a

    http/RRaprenderapro)ramar.comRindex.phpoptionNcomUcontentvieCNarticleidNML/ejercicioOejemploOresueltoOinterfaceOcompara$leOyOmetodoOcomparetoOapiOjavaOcompararOo$jetosOcuHH11ccatidNM/cursoOlen)uajeOpro)ramacionOjavaOnivelOavan&adoOiItemidN1MH