!""# $ ! % & % # ' ( ( * % ! #% !& #+ % % , & % + ) . "" . "" ( % ! %& /0 - $ ( %& ( %2 % & 34 1 " Clase Trabajador * ! # ! # Clase ALUMNO (SUBCLASE) $ & !% #% *7 &+ CLASE INSTRUMENTO NIF Nombre Apellidos Edad Oficio Método tocar Curso 5 6 *4 9 #$ $ :/ , <>? , !#@ ( & , >? , !#@ <>AB@ >ACDB@ . 9 ; " %& 8 <= !" E$F%& !G # '== 'C:9:!%& !-G # H'==) :?9IJ 9.HEF%' %&()"* #$ J %=== K9I 9:' $ %+ !LG # J %==< < !" 9MD49C949E4749 (49. 9ID $ N * O !!!" : NC % <88- .D 3. 9%&,(! 9MHC9=== M %/ N + P7 ! 9 90# <L 3 %D % C !; # !$ O I !N% C# % !"# <- : )* 7 E/ + + " & +4 $ Æ 9 90 % &'%( <) .D !# C A B N" .D !# . ..QQ 9/9 ,- <1 #$ % #% / <88-H :K<= <885H :K<< O <886H :K<!# # CNJ? %N ===H :K<L ==LH :K<) ==)U :K<- ==1U :K<1 R(S% (7+ 7 E%. *4 4 M 9 97 9 9 M $ !M$# C !C# 7 Q 7 $ % +DA'CB TTT <5 & $ APLICACIONES JAVA APLICACIONES NO JAVA API .$& .Æ ; 3 !% #Æ ; $ $& JAVA VIRTUAL MACHINE (JVM) HARDWARE HARDWARE <8 $ ' $ SISTEMA SISTEMA OPERATIVO OPERATIVO <6 Æ ; .(NN,' !% + # = $ Entorno de ejecución de Java (Java Runtime Environment) Entorno de compilación de Java Código Código fuente fuente Java Java (.java) (.java) Bytecode de Java Compilador Compilador de de Java Java (javac) (javac) Compilador Bytecodes locales Bytecodes locales ooBytecodes enviados enviados aa través través de de la la red red ByteCode ByteCode de de Java Java (.class) (.class) Código máquina nativo Cargador Cargador de de Clases Clases Intérprete Intérprete de de Java Java Librerías Librerías de de clases clases de de Java Java Compilador Compilador (Just-In-Time (Just-In-Time Máquina Compiler) Compiler) virtual de Java (JVM) Sistema Sistema operativo operativo Hardware Hardware < # ! + # -. ! + # * 7 ! # :; &!# ( Æ $ $ : $ /** Clase de ejemplo: cuenta bancaria */ class CuentaBancaria { long numero; string titular; Atributos long saldo; % $ V $ & void ingresar (long cantidad) { saldo = saldo + cantidad; } void retirar (long cantidad) { if (cantidad <= saldo) saldo = saldo – cantidad; } '( & W Æ : C& Æ .+ 7 + Sistema Sistema de de ejecución ejecución ( Métodos } L ) $ class Punto /* Clase de ejemplo: Punto */ { double _x; // atributo x double _y; // atributo y Punto -_x : double -_y : double +x() : double +y() : double double x(){ return _x; } double y(){ return _y; } void x(double d){ _x = d; } void y(double d){ _y = d; } +x (x:double) +y (y:double) // método x() // método y() ( D N +% + 9 // método x(double) .&!#Æ 4 $ +&!# // método y(double) } - #)% $ $*$+ , $ @ "0 $*$+ -. % $/0, RX& S %& ! $ >? !#@ N% >? !#@ 1 / Punto -_x : double -_y : double +x() : double +y() : double +x (x:double) +y (y:double) 5 " ((D @ $ Y; Y% ;!#Æ & ( & + 6 $ class Punto { ... } ' /* Clase Punto anterior */ class Punto { double _x; double _y; double x(){ return _x; } double y(){ return _y; } void x(double d){ _x = d; } void y(double d){ _y = d; } public class Prueba { // Programa principal public static void main (String [] args) { Punto p = new Punto(); p.x(3.0); System.out.println(“Coordenada x =“ + p.x()); //escribe 3 por pantalla. } , !9979# : ! # M4 ! # <><9><6@ < < <6 ><@ } 8 ' NA1 < ><@ Y; Y; )= == == Y% Y% == == 5= ! . <>? !#@ >? !#@ <;!)#@ %!5#@ L= ' $ $A B !2$2 # L< . 9 < < Y; )= Y; == Y; )= Y; )= Y% == Y% 5= Y% == Y% == <>>Æ <>>Æ " L ' ' C , ! # Z [ $3 V 4$& '( & W LL ' #2#34 9 + 4 % 2"34 + O 526734 & 4 Æ L) ' Hola Mundo!! .D /** * Programa HolaMundo * que presenta el mensaje Hola Mundo */ public class HolaMundo { public static void main (String [] args) { System.out.println (" Hola Mundo!! "); } } 1#2 #34 ! +# + 9 + L- , % Æ O% N 7 %& * / Æ A%/B N +Æ " & ! ! +D# L1 ' ' .D $; /!$# $! # / * !62# $ $<; D-8+ 70 $ + class class Circulo Circulo {{ ... ... + 4+%+ }} public public class class Prueba Prueba {{ public public static static void void main main (String (String [] [] args) args) {{ Circulo Circulo cc == new new Circulo(); Circulo(); }} $+ }} . /@ $ ? , ++# 5$!+ 5$!+ L5 ' N ! C 9 90# Æ % % !F# /@ XFN@ + N $ + L6 '' * !# \@ $ + .(NN,' N +% + $ N ? ? L8 )= '' '' . &#6. & ! # 0 9 % + #+ + %& / & 9 9 9 9 # 9 9 9 8 9 9 9 "6 8 ! # +9 ; +! 9 F# '' EditorGrafico Circulo Punto -_centro : Punto -_radio : double +main() -_x : double -_y : double +m ostrar() 1 +setCentro( x : double, y : double ) !+# import import graficos.*; graficos.*; public public class class EditorGrafico EditorGrafico {{ public public static static void void main main (String (String [] [] args) args) {{ Circulo Circulo cc == new new Circulo(); Circulo(); c.setCentro(3 c.setCentro(3 ,, 4); 4); c.mostrar(); c.mostrar(); c.radio(2.5); c.radio(2.5); c.mostrar(); c.mostrar(); }} }} 5$!+ 5$!+ 1 +m ostrar() +setX( x : double ) +setY( y : double ) package package graficos; graficos; class class Punto Punto {{ private private double double _x; _x; private private double double _y; _y; package package graficos; graficos; public public class class Circulo Circulo {{ private private Punto Punto _centro; _centro; private private double double _radio; _radio; EditorGrafico Circulo Punto -_centro : Punto -_radio : double +main() -_x : double -_y : double +m ostrar() 1 +setCentro( x : double, y : double ) public public Circulo() Circulo() //constructor //constructor {{ _centro _centro == new new Punto(); Punto(); }} !+# )L ) '' !+ !+ public public void void setCentro(double setCentro(double a, a, double double b) b) {{ void void setX(double setX(double d) d) _centro.x(a); _centro.x(a); {{ _centro.y(b); _centro.y(b); _x _x == d; d; }} }} void void setY(double setY(double d) d) public public void void setRadio(double setRadio(double d) d) {{ {{ _y _y == d; d; _radio == d; _radio d; }} }} void void mostrar() mostrar() {{ public public void void mostrar() mostrar() System.out.println("Valores System.out.println("Valores {{ de de xx ee y: y: "" ++ _x _x ++ "" "" ++ _y); _y); System.out.println("Circulo: System.out.println("Circulo: }} "" ++ _radio _radio ++ "" "); "); }} _centro.mostrar(); _centro.mostrar(); }} }} 5 !+ 5 !+ )< import import graficos.*; graficos.*; public public class class EditorGrafico EditorGrafico {{ public public static static void void main main (String (String [] [] args) args) {{ Circulo Circulo cc == new new Circulo(); Circulo(); c.setCentro(3 c.setCentro(3 ,, 4); 4); c.mostrar(); c.mostrar(); c.radio(2.5); c.radio(2.5); c.mostrar(); c.mostrar(); }} }} 5$!+ 5$!+ 1 +m ostrar() +setX( x : double ) +setY( y : double ) package package graficos; graficos; class class Punto Punto {{ private private double double _x; _x; private private double double _y; _y; !+ !+ package package graficos; graficos; public public class class Circulo Circulo {{ private private Punto Punto _centro; _centro; private private double double _radio; _radio; public public Circulo() Circulo() //constructor //constructor {{ _centro _centro == new new Punto(); Punto(); }} public public void void setCentro(double setCentro(double a, a, double double b) b) {{ void void setX(double setX(double d) d) _centro.x(a); _centro.x(a); {{ _centro.y(b); _centro.y(b); _x _x == d; d; }} }} void void setY(double setY(double d) d) public public void void setRadio(double setRadio(double d) d) {{ {{ _y _y == d; d; _radio == d; _radio d; }} }} void void mostrar() mostrar() {{ public public void void mostrar() mostrar() System.out.println("Valores System.out.println("Valores {{ de de xx ee y: y: "" ++ _x _x ++ "" "" ++ _y); _y); System.out.println("Circulo: System.out.println("Circulo: }} "" ++ _radio _radio ++ "" "); "); }} _centro.mostrar(); _centro.mostrar(); }} }} 5 !+ 5 !+ )) '' !# $ + *+ %( 2 N# '' . + : I VW 2( & -. !#0 !# / O/ & N 4 C !<# Æ Z?[TTT N7 % 9 9..QQ $ CD99I $ ; C VW . % & !# ! # 2 %& O /S NO )- '' )1 '' 3ULQFLSDO Ejemplo1. Herencia simple !# , . " ( " D4 +D 6XE(OHPHQWR$ 6XE(OHPHQWR% # V # & !NZ[ #V N% !];]#@ $ >0 N$!#@ $ E>0 N$E!#@ !#@ E !#@ N$ : $V # & !#V N% !] N$]#@ W W 2EMHFW W 0DPLIHUR &LUFXOR 3HUUR # $ V # # & !#@ # & !#V N% !] $]#@ W W (OHPHQWR N$E : $V # & !#V N% !] N$E]#@ W # & !#V N% !] N$E]#@ W W 9HKLFXOR *DWR W ^ U ^ N$ N$E $ N$E )5 )6 '' Ejemplo2. Herencia simple V N@ !N#V >@ W N;#!#V @ W N##$!#@ W ; V NY@ !N9N#V !#@ Y >@ W N !#V Y@ W N5!#V O!#QA9A Q, !#@ W N##$!#V A$ B Q,!#@ W W ''' 3HUVRQD get $4" !# <(((= (VWXGLDQWH N#;#!#V A*B@ W W Ha de implementar obtenerNombre() < ;< '/ SuperClase extends Int2 implements -= ''' $ '/ V N> # !N#V >@ W # NO!#V @ W " .O V NO!#@ W " * : .O V 4 !* #@ *:!#@ W * * V NO!#VA*B@W 4!* #V @W *:!#VH<@W W Int1 Clase )8 <!#V00W !#V00W D9 % * +4 & ^ U ^ 9$ $;7 $ <* / *. .O .O V C& D/ % .7 $4 ! : !# V !NZ[ # V $ > ? $ !A$;7B9AB#@ N% ! #@ANB N% ! O!##@ W W ''' " .O V NO!#@ W +/& 3ULQFLSDO 4!# Ha de implementar obtenerNombre(), autorizar() y obtenerUID(), porque al ser Usuario un interface, no puede haber implementación allí. -< " V N. !#@ W * : V N @ # * !N 9N#V !#@ >@ W # N. !#V @ // Implementa el W interface O!# 0 W V Investigador Profesor !NZ[ #V >? !] E]#@ E>? * !]O]9]C . ]#@ extends implements * .>? * !]C]9]: ]#@ N% !O!##@ ProfesorUniversidad N% !EO!##@ N% !E. !##@$MM_O$" A B N% !.. !##@ W W - ($$ ($$ $2 D & - - : H H H E <1 * = * Q<1H< . % 6 H<6 Q<5 E% <1 H<- Q<-H< N L HL< QL<H< 1) 1L Q1LH< ( L HL);<=L6 QL);<=L6 3 1) HL);<=L=6 QL);<=L=6 : H H H $ . .>? .!`;`#@ >.!#@ -L -) ; . N (+ %8( N 3+ %8L3 ! !``# N ! # >`;`@ ) . & H . :-@ ! Æ =# & 4 ;D C" a D a + Æ $ $ >L<)<1@ !253 !]C]# CbC"><==@ -- -1 ! ! O .49 !Y# D!^# ( 7 D $ . 9Y9^ 5 9S %/ %/ O 4%/ !.# O & 4 / !!#9.90# . %/ !C# 4%/ -5 $ $ .!#9. .9. -6 $ !&TT N.0SS $ >QQ@N % >QQ@N % & Q9H9\99c >9Q>9H>9\>9>9c> QQ9HH M d9d>9e9e>9>>9T> >L@ ( ff9gg9T9f9g >QQ@M >)%>) . Q Q>@+;>;Q%@ \>@+;>;\%@ >QQ@M >L%>) AB QAB -8 M 1= &* D N : \ Z [ $!7 # V .& W 7 D \ 77 8 9!52 + 7 1< &* & +&! ># 7 1 &* ,& ! 9 #V !e#S@ W $& $ ! 9 # V @ N& # !e# N& 4 @ Cada Cada parámetro parámetro con con su su tipo. tipo. No No es es válido: válido: int int a, a, bb >@ >@ Indica Indica el el valor valor que que devuelve devuelve el el método método @ W 1L 1) &* &* C& 7 $ * $ N Æ !4 9 # ! # $ $ V @ $!#V N% !]. $ ]#@ ><=@ W W V N% !]] Q#@ W 1- &* &* 5# & & $ $ V ! 9 #VW ! 9 #VW ! 9 9 #VW !#VW W 11 % N + ' . C&23 + !# N%/7 N7 7 7 A&B " A B ! # 15 16 &* !+ !+ public public class class Clonacion Clonacion implements implements Cloneable Cloneable {{ int int dato; dato; 4??$@$& "($& Clonacion (int public Clonacion (int valor) valor) {{ public class class Referencia Referencia 4??$@$&A7 dato {{ dato == valor; valor;4??$ " 4BC }} int int dato; dato; #4BC public Referencia public static static void void main(String[] main(String[] args) args) Referencia (int (int valor) valor) {{ 4BB throws dato throws CloneNotSupportedException CloneNotSupportedException dato == valor; valor; #4BB {{ }} Clonacion public Clonacion aa == new new Clonacion(10); Clonacion(10); public static static void void main(String[] main(String[] args) args) // {{ // Clona Clona el el objeto objeto Clonacion b = (Clonacion) (); a.clone Referencia Clonacion b = (Clonacion) a.clone(); a.clone(); Referencia aa == new new Referencia(10); Referencia(10); System.out.println("a: //Referencia System.out.println("a: "" ++ a.dato); a.dato); //Referencia al al objeto objeto System.out.println("b: Referencia System.out.println("b: "" ++ b.dato); b.dato); Referencia bb == a; a; a.dato++; System.out.println("a: a.dato++; System.out.println("a: "" ++ a.dato); a.dato); System.out.println("a: " + a.dato); System.out.println("b: " + b.dato); System.out.println("a: " + a.dato); System.out.println("b: " + b.dato); System.out.println("b: a.dato++; System.out.println("b: "" ++ b.dato); b.dato); a.dato++; }} System.out.println("a: System.out.println("a: "" ++ a.dato); a.dato); System.out.println("b: System.out.println("b: "" ++ b.dato); b.dato); }} }} 4??$@$& !($& }} 4??$@$&A7 4??$ ! $ :!+ :!+ 18 &*' 5 !#@Æ +D M . :< " N 7 A!#B O<G > !# 5= &*' !# ." D#$(23 4BC #4BC 4BB #4BC &*' " !#+ ." NÆ .ON$; M / " !#V0W ( !# <. . . . . " . 4 + //Imprime: 3 3 2 5< 5 5L 5) + . " !)# V <@ O@ W 5- ( + % % 51 + + ." ! d>-# N% !]]#@ N% !]N ]#@ !)# V I <@ ! d># V > U @ N% !]N ]#@ W N% !]$ ]#@ W V I @ W 55 + $ 56 + . / " " ((( !) #V . / 07 ? !; #V I <@ <VI <@ZF[@W W !)#V VI @ZF[@W I @ W !);#V OVI O@ZF[@W ZI OQ<@[ I L@ W V W I )@ W 58 6= + + .D ? . / ; Æ ; $ ? !#V <N% !]( ]#@F@ ( % N% !]C ]#@F@ LN% !]C& ]#@F@ . & +Æ #8 )N% !] ]#@F@ -N% !] ]#@F@ 1N% !]N7]#@F@ 5N% !]:]#@F@ W 6< + 6 +$ $ O/D <99L0 ? ! #V < L - 5 6 <= <O: >L<@F@ ) 1 8 <<O: >L=@F@ !!!% c)>>=#ffT!% c<==>>=##gg!% c)==>>=## O: >8@ O: >6@ F@ W E07 ? !; #V I @ W E07 V I @ W? !; # 6L 6) +$ +$ $ E" ><@ ? !e><=# V > Q@ QQ@ W !4@; @# V I @ W ><@ V > Q@ QQ@ W? !e><=# 6- +$ +$ $ N#8 !><@e><=@QQ# > Q@ !><=9 >=@d @ QQ9HH# 65 7 % 34 ! + & # N N% !]*A Q #@ 61 N 34%4 66 +$ $ ! >=9><@e-@QQ# V !e><# F@ > Q@ W $ 68 N >? N!]C]#@ N >]C]@ $ N L> Q <@ N D=H< $ > !L#@ 9 9 !# N D4 $ N <> !<9-#@ $ ! <+ ! ## N > !)9 !##@ N <>> TT N > !)#@ equivale N% ! <#@C #"! ! /<=**<!/0><<><=**<!2/0> <<><<!?/<<0><<>/<<--<$<00,Æ @ 12 AB / N >]C]@ . &* !#2# 8= N & #!9 99# $ > !#@AB!# 7&7!9# N >? N!#@ (&723 N ++ N+ . E ( = . 75 ! >=9><@e-@QQ# V !e><# @ QLQ)>8 > Q@ W 8< N% ! #@C 8 , . 76 % $ . 7 $ , ! % $ Z[>? $Z1=[@ Z[ @ $ Z[@ N & 8L , N% 2 $ +D 7 N D ; Z<-[ Z[ 8) % (% / % : + $ Z[@ iO <== T $ !>=@e@QQ#Z[>0 !#@ > @O"$N*OCh,":" $ >0 FBCCG@\% \ ( % # 1# 7 +/ % .D % , N% =% /H< $ >? Z-=[@ Z[ @ N & >? ZL=[@ Z[@ . ? N% !Z)-[N!##@ 8- 81 , , % $ V !N Z[ # V 99 Z[><BH,HIHJHK=> Z[Z[>? Z<[Z[@ Z[Z[Z[>? Z<[Z[ZL[@ $ !4U 7H % % # $ Z[Z[>? Z-[Z-[@ !>=9 >=@e-@QQ# Q> Z[@ Z[Z[>? Z<=[Z<=[@ N% !]( ]Q #@ W W 85 , 86 +-$ $ !% 7# $ V ! #V Z[ >? Z[@ N% !](]Q #@ W !N Z[ #V !<=#@ !=#@ W W 88 $;+ ; $; 7 ,? ,? M$; M$; : : "$; "$; . O3$; . O3$; $; $; 3O3$; 3O3$; ;""E $; ;""E $; $; $; <== +-$ +-$ ( $ 9 9C9 N ( : $; D ( : N $; ;D $ A) %+ <=< +-$ N C !#C ; N N!#:N + ; NF,!#& 4 ; $ % % % V N+6 ;3045 ! # .+; W !B A) ;#V I ; W Z% V \.+ !; #\ W[ <= +-$ .; B .$ & ( $; F 9 9 <=L N + 6 N +7 ! # ; 7 7 N7 + N <+ <=) +-$ +-$ A+ $ . V N Z[>V]( ]9]. ]9]:]W@ !NZ[ # V @ 6 V ! >=@ e>L@QQ# N% ! Z[#@ W 7 !%;""E $; ;#V N% !]$% ]#@ W W W $ ; +& ; & + .7 70 A+ $ !#? "$;9$; V .+4 ; O % 0 +D !+ 4# W <=- +-$ : % . ; % : ; % & <=1 +./ ! : $; $; !;# +& ;& + .7 70 M& 56 + A+ C$; ; $;V C$;!#VW C$;!N #V ! #@WC !# W M$; M$; "$; "$; : : ... 56( " N 56( " N 56( " N C& N% ,? ,? .9 9L C$; C$; <=5 !#7% C& N% %N% !+ # !+ # <=6 +./ +./ A+ 7 $&((L> (D. M "" $ V !N Z[ #70 'D: V $&5 N23 a M "" N% ' 54 $ ' 5 @ " " > !# N% !#@ M M ! # ! # N% !]:]QQ]]#@ W EM EM W <=8 +./ <<= +./ A+ /90 \@ $ V !N Z[ #? "$; V NM $ >? NM!N% #@ EM >? EM!$#@ N @ A+ / 0 \@ $ V !N Z[ #? "$; V NM >? NM!N% #@ EM >? EM! #@ @ N @ N% !]4/]#@ > (!#@ >'('23> >(!#@ N% !]: ]Q #@ W W W NM NM W <<< << /&0 -7( %-7(' 7 & C +!# C;!# C!9$# C?!9$# C!# C!# C !# C !# C !# C!# C: !# CM !# <<L