Upload
jhonalexanderguzmantomas
View
215
Download
0
Embed Size (px)
Citation preview
8/15/2019 LP2-MONOGRAFIA3
1/26
“AÑO DE LA DIVERSIFICACION PRODUCTIVA Y DELFORTALECIMIENTO DE LA EDUCACION”
Área
LENGUAJE DE PROGRAMACION II
Tema: 1. Marco teórico y mapa conceptual de aplicaciones controladas por eventos Java(aplicaciones).2. Marco teórico y mapa conceptual de Métodos propios (aplicaciones).3. Estructuras de control, decisión, bucle; trabao con estructuras de control (aplicaciones).
Docente:
TRINIDAD MALAPARTIDA, Arturo Melquiades
Integrante
MAMANI CORDOVA Robert
!"MAN TOMA# $%on Ale&ander
#!LLCA MA#O $o%an 'el(in
#emestre: III
LENGUAJE DE PROGRAMACION II 1
2015-CERRO DE
8/15/2019 LP2-MONOGRAFIA3
2/26
8/15/2019 LP2-MONOGRAFIA3
3/26
8/15/2019 LP2-MONOGRAFIA3
4/26
INDICE
D3DICATORIA00;
INTROD!CCION 0<
INDIC30008
APLICACION3# CONTROLADA# POR 3V3NTO#00000=
3#C!C>ADOR3# D3 3V3NTO#:::::::::::::00::::::::?
ADAPTADOR3# ADAPT3R#/ D3 3V3NTO#0::::00::::0@
M3TODO# 3N $AVA0:00 :::::::::::::::::00B
3#TR!CT!RA# D3 CONTROL::::::::::::::::::::::
3#TR!CT!RA CONDICIONAL::::::::::::::::::::::0@
3#TR!C!TRA R3P3TITIVA:::::::::::::::::::::::00;B
CONCL!#ION:::::::::::::::::::::::::::::00;8
1I1LIORAIA:::::::::::::::::::::::::::::0;=
APLICACIONES CONTROLADA POR EVENTOS
LENGUAJE DE PROGRAMACION II 4
8/15/2019 LP2-MONOGRAFIA3
5/26
EVENTO
!n e(ento se genera como res+uesta a lo que el usuario realice como interacci6n con
un +rograma durante el ciclo de (ida de este, sea una a+licaci6n o a++let0 Como todoen $a(a, los e(entos son re+resentados como ob*etos, %abiendo di)erentes ti+os de
e(entos, re+resentado cada uno +or una clase di)erente
Tipo !e e"e#$o
E"e#$o !e %a&o #i"e' o !e (o)po#e#$e
#on aquellos que re+resentan una entrada sobre un com+onente (isual de un sistema
de (entanas en la +antalla0 >acer clicE con el rat6n, o+rimir una tecla0
F COMPONENTEVENT* 3(ento de ba*o ni(el que indica que un com+onente se %a
mo(ido, cambiado su tamaGo, o cambiada su (isibilidad0
F FOCUSEVENT* 3(ento generado +or un com+onente, que indica que el com+onente
%a ganado o +erdido su en)oque en el teclado0
F INPUTEVENT: es la clase ra47 +ara todos los e(entos de entrada a ni(el decom+onente0 Los e(entos de entrada son des+ac%ados a los escuc%as antes que sean
+rocesados normalmente +or las )uentes donde ellos se generaron0
+ ,EYEVENT: indica que se %a +resionado una tecla en un com+onente0 3ste e(ento
se genera +or un ob*eto com+onente, +or e*em+lo un cam+o de te&to, cuando una
tecla es +resionada, suelta, o se genera un car5cter con ella +resion5ndola -
solt5ndola0
+ MOUSEEVENT* 3(ento que indica que %a sucedido una acci6n con el rat6n sobrealg9n com+onente0 3stas acciones +ueden ser:
3(entos sim+les del rat6n: un bot6n +resionado, suelto o liberado, +resionado -
liberado, el cursor del rat6n entra o sale de un com+onente0 3(entos de mo(imiento
del rat6n: el rat6n se %a mo(ido, el rat6n se %a mo(ido con un boton +resionado
dragged/0
+ CONTAINEREVENT: 3(ento que indica que el contenido de un contenedor %a
cambiado en (irtud de %aberse agregado o su+rimido un com+onente0
LENGUAJE DE PROGRAMACION II 5
8/15/2019 LP2-MONOGRAFIA3
6/26
+ -INDO-EVENT* 3(ento que indica que una (entana %a cambiado su estado, +or
e*em+lo cuando se abre, se cierra, se acti(a o desacti(a, cuando se minimi7a
iconi)ied/ o restaura descon)iad/0
E"e#$o e).#$i(o o !e a'$o #i"e'
Aquellos que re+resentan la )unci6n o signi)icado de m5s alto ni(el de un e(ento, +or
e*em+lo %acer doble cliE con el rat6n en una l4nea de te&to0 Los siguientes son algunos
e(entos sem5nticos:
F ACTIONEVENT* e(ento que indica que %a sucedido una acci6n de)inida en un
com+onente, +or e*em+lo +resionar un bot6n +ara que realice una )unci6n de)inida
+ara ese com+onente0
F ADJUSTMENTEVENT* este e(ento se genera cuando se a*usta el (alor de un ob*etoa*ustable0
F ITEMEVENT* 3ste e(ento indica que un elemento %a sido seleccionado o
deseleccionado, cambiando su estado, +or e*em+lo en una lista al seleccionar uno de
sus elementos0
+ TE/TEVENT* e(ento que indica que un ob*eto te&to +or e*em+lo Te&tCom+onent %a
cambiado su te&to0
ESCUC0ADORES DE EVENTOS
Las inter)aces de ba*o ni(el +ara escuc%as son las siguientes:
F COMPONENTLISTENER* Inter)ace escuc%a que recibe e(entos de com+onentes0
!na clase que requiera +rocesar un e(ento de un com+onente im+lementa esta
inter)ace - todos los m.todos que contiene o e&tiende la clase abstractaCom+onentAda+ter,sobreescribiendo 9nicamente los m.todos de interes0 3l ob*eto
escuc%a creado de esa clase es registrado con el com+onente usando el m.todo
addCom+onentListener0
F CONTAINERLISTENER* inter)ace escuc%a que recibe e(entos de contenedores0
!na clase que requiera +rocesar un e(ento de un contenedor im+lementa esta
inter)ace - todos los m.todos que contiene o e&tiende la clase abstracta
ContainerAda+ter,sobreescribiendo 9nicamente los m.todos de interes0 3l ob*etoescuc%a creado de esa clase es registrado con el com+onente usando el m.todo
LENGUAJE DE PROGRAMACION II 6
8/15/2019 LP2-MONOGRAFIA3
7/26
addContainerListener0 Cuando el contenedor cambia, bien sea +orque se %a agregado
o eliminado un com+onente, el m.todo re)erido en el ob*eto escuc%a es in(ocado - el
Container3(ent se le suministra0
+ FOCUSLISTENER* Inter)ace +ara recibir el )oco del teclado sobre un com+onente0
3n $a(a cuando un com+onente tiene )oco, %ace re)erencia a que las entradas del
teclado se dirigen a ese com+onente0 La clase interesada en recibir )oco del teclado
sobre un com+onente im+lementa esta inter)ace o e&tiende la clase abstracta
ocusAda+ter0 3l ob*eto escuc%a creado se registra con el com+onente usando el
m.todo addocusListener0
+ ,EYLISTENER* inter)ace +ara recibir e(entos generados +or el teclado, mediante+resion de teclas Ee-stroEes/, soltar la tecla o +resionar - soltar una tecla0 La clase
intersada en +rocesar e(entos de teclado im+lementa esta inter)ace o e&tiende la clase
abstracta 'e-Ada+ter0 3l ob*eto escuc%a creado se registra con un com+onente
usando el m.todo add'e-Listener0 #e i#"o(a e' )1$o!o re'e"a#$e 2 e 'e
3)i#i$ra ,e2E"e#$4
+ MOUSELISTENER* inter)ace +ara recibir e(entos del rat6n tales como +resionar o
liberar un bot6n, %acer cliE, entrar o salir de un com+onente0 3l mo(imiento - el
arrastrado del rat6n usan la inter)a7 MouseMotionListener0 !na clase que requiera
+rocesar los e(entos del rat6n indicados antes, deber5 im+lementar esta inter)ace o
e&tender la clase abstracta 7ouseAda+ter0 3l ob*eto escuc%a creado es registrado con
un com+onente usando el m.todo addMouseListener0 Cuando sucede un e(ento del
rat6n se in(oca el m.todo rele(ante en el ob*eto escuc%a - se le suministra el
Mouse3(ent0
DE ALTO NIVEL
Las inter)aces de alto ni(el o sem5ntico +ara escuc%as son las siguientes:
+ ACTIONLISTENER* INTERFA5 +ara recibir e(entos de acci6n sobre un
com+onente0 La clase que requiera +rocesar un e(ento acci6n deber5 im+lementar
esta inter)a7 - el ob*eto creado es registrado con el com+onente usando el m.todo
addActionListener0 Cuando el e(ento acci6n action/ sucede se in(oca el m.todo
actionPer)ormed del ob*eto, - se le suministra un A($io#E"e#$4
LENGUAJE DE PROGRAMACION II 7
8/15/2019 LP2-MONOGRAFIA3
8/26
8/15/2019 LP2-MONOGRAFIA3
9/26
;0 3l c6digo que registra una Instancia de la clase de mane*o de e(entos de un
o-ente sobre uno o m5s com+onentes0 Por e*em+lo:
someCom+onent0addActionListenerinstanceO)M-Class/
8/15/2019 LP2-MONOGRAFIA3
10/26
8/15/2019 LP2-MONOGRAFIA3
11/26
8/15/2019 LP2-MONOGRAFIA3
12/26
Cuando se llama a un m.todo, la e*ecuci6n del +rograma +asa al m.todo - cuando
.ste acaba, la e*ecuci6n contin9a a +artir del +unto donde se +rodu*o la llamada0
!tili7ando m.todos:
Podemos construir +rogramas modulares0
#e consigue la reutili7aci6n de c6digo0 3n lugar de escribir el mismo c6digo
re+etido cuando se necesite, +or e*em+lo +ara (alidar una )ec%a, se %ace una
llamada al m.todo que lo reali7a0
3n $a(a un m.todo siem+re +ertenece a una clase0
Todo +rograma *a(a tiene un m.todo llamado main0 3ste m.todo es el +unto de
entrada al +rograma - tambi.n el +unto de salida0
94 ESTRUCTURA GENERAL DE UN M:TODO JAVA ;4 LA ESTRUCTURA GENERAL DE UN M:TODO JAVA ES LA SIGUIENTE*
3s+eci)icadoresQ ti+oDe(uelto nombreMetodo lista +ar5metrosQ/ t%ros
lista3&ce+cionesQ
H
JJ instrucciones
Return (alorQ
K
Los elementos que a+arecen entre corc%etes son o+cionales0
ESPECIFICADORES o+cional/: determinan el ti+o de acceso al m.todo0 #e (er5n
en detalle m5s adelante0
TIPODEVUELTO: indica el ti+o del (alor que de(uel(e el m.todo0 3n $a(a es
im+rescindible que en la declaraci6n de un m.todo, se indique el ti+o de dato que
%a de de(ol(er0 3l dato se de(uel(e mediante la instrucci6n return0 #i el m.todo no
de(uel(e ning9n (alor este ti+o ser5 (oid0
NOM
8/15/2019 LP2-MONOGRAFIA3
13/26
LISTA DE PARÁMETROS o+cional/: des+u.s del nombre del m.todo - siem+re
entre +ar.ntesis +uede a+arecer una lista de +ar5metros tambi.n llamados
argumentos/ se+arados +or comas0 3stos +ar5metros son los datos de entrada que
recibe el m.todo +ara o+erar con ellos0 !n m.todo +uede recibir cero o m5s
argumentos0 #e debe es+eci)icar +ara cada argumento su ti+o0 Lo par1#$ei o#
o%'i=a$orio aunque est.n (ac4os0
T0RO-S LISTAE/CEPCIONES o+cional/: indica las e&ce+ciones que +uede
generar - mani+ular el m.todo0
RETURN* se utili7a +ara de(ol(er un (alor0 La +alabra cla(e return (a seguida de
una e&+resi6n que ser5 e(aluada +ara saber el (alor de retorno0 3sta e&+resi6n
+uede ser com+le*a o +uede ser sim+lemente el nombre de un ob*eto, una (ariable
de ti+o +rimiti(o o una constante0
3l ti+o del (alor de retorno debe coincidir con el ti+oDe(uelto que se %a indicado en
la declaraci6n del m.todo0
#i el m.todo no de(uel(e nada ti+oDe(uelto (oid/ la instrucci6n return es
o+cional0
!n m.todo +uede de(ol(er un ti+o +rimiti(o, un arra-, un #tring o un ob*eto0
!n m.todo tiene un 9nico +unto de inicio, re+resentado +or la lla(e de inicio H0 Lae*ecuci6n de un m.todo termina cuando se llega a la lla(e )inal K o cuando se
e*ecuta la instrucci6n return0
La instrucci6n return +uede a+arecer en cualquier lugar dentro del m.todo, no tiene
que estar necesariamente al )inal0
;4 IMPLEMENTACIÓN DE M:TODOS EN JAVA
Pasos +ara im+lementar un m.todo:
0 Describir lo que el m.todo debe %acer
;0 Determinar las entradas del m.todo
8/15/2019 LP2-MONOGRAFIA3
14/26
?0 Prueba del m.todo: diseGar distintos casos de +rueba
E&e)p'o !e )1$o!o: m.todo que suma dos n9meros enteros0
im+ort *a(a0util0#canner
+ublic class Metodos H
+ublic static (oid main#tringQ args/ H
#canner sc ne #canner#-stem0in/
int numero, numero;, resultado
#-stem0out0+rintlnSIntroduce +rimer n9mero: S/
numero sc0ne&tInt/
#-stem0out0+rintlnSIntroduce segundo n9mero: S/
numero; sc0ne&tInt/
resultado sumarnumero, numero;/
#-stem0out0+rintlnS#uma: S resultado/
K
JJM3TODO
+ublic static int sumarint a, int b/ H
int c
c a b
return c
K
K
LENGUAJE DE PROGRAMACION II 14
8/15/2019 LP2-MONOGRAFIA3
15/26
3l m.todo se llama sumar - recibe dos n9meros enteros a - b0 3n la llamada al
m.todo 'o "a'ore !e 'a "aria%'e #3)ero9 2 #3)ero; e (opia# e# 'a
"aria%'e a 2 %4 3l m.todo suma los dos n9meros - guarda el resultado en c0
inalmente de(uel(e mediante la instrucci6n return la suma calculada0
E&e)p'o !e pro=ra)a Ja"a que contiene un m.todo con (arios return:
Programa que lee +or teclado un aGo - calcula - muestra si es bisiesto0 Para reali7ar el
c5lculo utili7a un m.todo llamado es1isiesto0
+acEage bisiesto
im+ort *a(a0util0#canner
+ublic class 1isiesto H
+ublic static (oid main#tringQ args/ H
#canner sc ne #canner#-stem0in/
int aGo
#-stem0out0+rintlnSIntroduce aGo: S/
aGo sc0ne&tInt/
i)es1isiestoaGo// >>''a)a!a a' )1$o!o
#-stem0out0+rintln S1isiestoS/
else
#-stem0out0+rintln SNo es bisiestoS/
K
JUU
U m.todo que calcula si un aGo es o no bisiesto
UJ
+ublic static boolean es1isiestoint a/H
i)a8B WW aBBXB YY a8BBB/
return true
LENGUAJE DE PROGRAMACION II 15
8/15/2019 LP2-MONOGRAFIA3
16/26
else
return )alse
K
K
MÉTODOS PROCEDIMIENTO (VOID) Y FUNCIÓN (RETURN)
!"#$%!& &!'() "!& !'*)+!& +$, ()$/!& ) /)') $$())( ) )" '$!
/) !'*)+!& ) "$ $(+) )(!( )(/$ /) "$ $+$""$ /)" )+!(! /)
/)&$((!""!. S "&$%!& ! '!+ /)()! /)" ($+ &!'() )""!& &) !&
/)&")$ "!& %:+!/!& ;!)($!)&< /&!'")& $($ $/$ !'*)+!.
$< Métodos tipo funcin! &! %:+!/!& ) !& /)#)"#) $"!. U
%:+!/! )& +! & !%)$ ! +! ;! !&/)($%!& $!($ "$
$"$'($ "$#) '" %)+($&
) + )+T!M!+!(;< !%)$ ! )" +! + "! ) &=$ ) !&
/)#)"#) )+)(!. T))( ) )+$ ) %:+!/! +! /)#)"#)
&!"! /$+! !'*)+! !%! ()&"+$/!> ! #$(!&. L$ /)#!" /)" ()&"+$/!
&) ),()&$ ! "$ $"$'($ "$#) ()+( &)/$ /)" /$+! !'*)+! $ /)#!"#)(>
!( )*)%"! ()+( +!M!+!(?. L$ &)+)$ ()+( %"$ ) +)(%$ "$
)*) /)" /! ) )" %:+!/! )&+$(@ +$%)+) ) "$ ")$ =$". D)
),&+( $ ")$ !( /)+(@& /) $ &)+)$ ()+(> $ "")$($ $
)*)+$(&) ;+)/()%!& ) %$+$( )&+! !() )" &! /) !/!$")& !&
)(%+(@ +))( %@& /) ()+( ) %:+!/!
8/15/2019 LP2-MONOGRAFIA3
17/26
(!)/%)+! & !%)$ ! "$ $"$'($ "$#) #!/ ;) +($//! /)"
":& #)) &)/! #$! ! "!
$) ) J$#$ &) )(%+) ) %:+!/! /) )&+) +! "$ "$ &)+)$
()+(?. S !(() )&+!> "$ &)+)$ /$ "$( $ ) )" %:+!/! =$") ) )&)
+! & )*)+$( $ ")$ %@& /) /!. S!"! +)) &)+/! & &!
$&!$/! $ ) &) %"$ )(+$& !/!)&.
%Pu#d# un $étodo s#" &' $is$o ti#$po funcin
p"oc#di$i#nto !(%$"%)+) /)')%!& )#+$("!. P!/($%!& +($+$( /)
$($( !)($!)&> )(! )& $ &+$ ) +($+$()%!& /) )#+$(. N!&
"$+)$()%!& !%! !'*)+#! ) +!/! %:+!/! +! &) )+() )
/)#!"#)(!& $)""! ) !& +)()&$ & ()$"$( !+(!& (!)&!&. I$"%)+)
'&$()%!& ) +!/! (!)/%)+! ()$") (!)&! !()+! !
#$(!&.
ESTRUCTURAS DE CONTROL
Las estructuras de control determinan la secuencia de ejecución de las
sentencias de un programa.
Las estructuras de control se dividen en tres categorías:
Secuencial
Condicional o Selectiva
Iterativa o Repetitiva.
LENGUAJE DE PROGRAMACION II 17
8/15/2019 LP2-MONOGRAFIA3
18/26
1. ESTRUCTURA SECUENCIAL
El orden en que se ejecutan por defecto las sentencias de un programa es
secuencial. Esto significa que las sentencias se ejecutan en secuencia, una
despus de otra, en el orden en que aparecen escritas dentro del programa.
La estructura secuencial est! formada por una sucesión de instrucciones que
se ejecutan en orden una a continuación de la otra.
Ejemplo:
"
instrucción #$
instrucción %$
instrucción &$
'
En (ava si el )loque de sentencias est! constituido por una *nica sentencia no
es o)ligatorio el uso de las llaves de apertura + cierre " '-, aunque sí
recomenda)le.
Ejemplo de programa (ava con estructura secuencial: rograma que lee dos
n*meros por teclado + los muestra por pantalla.
/* Programa que lea dos números por teclado y los muestre por
pantalla.
*/
import java.util.*;
public class Main {
public static void main(String! args"{
//declaraci#n de variables
int n$% n&;
Scanner sc ' ne Scanner(System.in";
//leer el primer número
System.out.println()ntroduce un número entero+ )";
n$ ' sc.ne,tnt("; //lee un entero por teclado
//leer el segundo número
System.out.println()ntroduce otro número entero+ )";
n& ' sc.ne,tnt("; //lee un entero por teclado
//mostrar resultado
LENGUAJE DE PROGRAMACION II 18
8/15/2019 LP2-MONOGRAFIA3
19/26
System.out.println()-a introducido los números+ ) n$ )
y ) n&";
2. ESTRUCTURA CONDICIONAL, ALTERNATIVA O SELECTIVA
La estructura condicional determina si se ejecutan unas instrucciones u otras
seg*n se cumpla o no una determinada condición.
En java la estructura condicional se implementa mediante:
/ Instrucción if .
/ Instrucción s0itc1.
/ 2perador condicional 3 :
2.1 INSTRUCCION if
uede ser del tipo:
/ Condicional simple: if
/ Condicional do)le: if ... else ...
/ Condicional m*ltiple: if .. else if ..
La condición de)e ser una expresión booleana es decir de)e dar como
resultado un valor )ooleano r!e ó false-.
Con"i#ional si$ple: se eval*a la condición + si sta se cumple se ejecuta
una determinada acción o grupo de acciones. En caso contrario se saltan dic1o
grupo de acciones.
ife4presión )ooleana-"
instrucción #
instrucción %
.......
'
56
6 rograma que pide una nota por teclado + muestra un mensaje si la nota es 6 ma+or o igual que 7
LENGUAJE DE PROGRAMACION II 19
8/15/2019 LP2-MONOGRAFIA3
20/26
65
import java.util.6$
pu)lic class Ejemplo8If "
pu)lic static void main String9 args -"
Scanner sc ; ne0 Scanner S+stem.in -$
S+stem.out.print
8/15/2019 LP2-MONOGRAFIA3
21/26
Bna ve que se ejecuta un )loque de instrucciones, la ejecución contin*a en la
siguiente instrucción que apareca despus de las sentencias if .. else
anidadas.
Ejemplo de programa (ava que contiene una estructura condicional m*ltiple:
rograma que lee una 1ora n*mero entero- + muestra un mensaje seg*n la
1ora introducida.
56
6 rograma que muestra un saludo distinto seg*n la 1ora introducida
65
import java.util.6$
pu)lic class Ejemplo%If "
pu)lic static void mainString9 args- "
Scanner sc ; ne0 ScannerS+stem.in-$
int 1ora$
S+stem.out.println
8/15/2019 LP2-MONOGRAFIA3
22/26
8/15/2019 LP2-MONOGRAFIA3
23/26
8/15/2019 LP2-MONOGRAFIA3
24/26
&. Si la condición es cierta se ejecutan las instrucciones. Si es falsa, finalia la
ejecución del )ucle + contin*a el programa en la siguiente instrucción despus
del for.
G. Se actualia la varia)le o varia)les de control incremento5decremento-
7. Se vuelve al punto %.
Ejemplo de programa (ava que contiene una instrucción for:
56
6 programa que muestra los n*meros del # al #8
65
pu)lic class Ejemplo8or "
pu)lic static void mainString9 args- "
int i$
fori;#$ i;#8$iKK-
S+stem.out.printlni K <
8/15/2019 LP2-MONOGRAFIA3
25/26
La +rogramaci6n orientada a ob*etos +ermite la o+timi7aci6n del c6digogenerado gracias a que mediante t.cnicas de %erencia, atributos est5ticosentre otros +ermiten, que el c6digo sea gen.rico de manera que sea reutili7able
Mediante la t.cnica a+rendida en el +resente curso +odemos establecer una
soluci6n +rimiti(a de un +roblema real, tan solo con relacionarlo con ob*etosl6gicos que ser5n usados +ara el desarrollo del so)tare0
Podemos dar a conocer de una )orma sencilla los mecanismos que se usan eneste ni(el de +rogramaci6n, a +ersonas que deseen una e&+licaci6n r5+ida -sencilla de lo que es la +rogramaci6n orientada a ob*etos
Tenemos los conocimientos necesarios como +ara en)rentar un +roblema real -desarrollo en otro lengua*e de +rogramaci6n, +ues concebimos la idea de queel lengua*e C es la base de la +rogramaci6n0
Al traba*ar con la +rogramaci6n orientada a ob*etos sea est5 desarrollada enotras +lata)ormas de +rogramaci6n o en lengua*e C, sabemos las )ormas delograr un me*or rendimiento del equi+o a controlar - a+licar solucionessencillas, de manera que sea )5cilmente digeribles +ara el usuario -Jodestinatario del traba*o )inal0
LENGUAJE DE PROGRAMACION II 25
8/15/2019 LP2-MONOGRAFIA3
26/26