Ma Master 2 BBSG
POO, langage Java
Laurent Tichit
1. Des exercices simples pour commencer 1.1. L’incontournable « Print "Hello" » public class class Bonjour {
public static void main(String[] args) { System.out.println("Bonjour"); }
}
Sans commentaire...
1.2. Les arguments de la ligne de commande public class class alcul { public static void main(String[] args) { i! (args.lengt # $) { System.out.println("%mpl System.out. println("%mploi& oi& java alcul #nombre' #oprateur' #nombre'"); #nombre'"); return; } double * +ouble.parse+ouble(args[, +ouble.parse +ouble(args[,]); ]); double y * +ouble.parse+ouble(args[+ouble.parse +ouble(args[-]); ]); double * ,; s/itc (args[0].car1t(,)) (args[0].ca r1t(,)) { case 232& * 3 y; brea4; case 252& * 5 y; brea4; case 262& * 6 y; brea4; case 272& * 7 y; brea4; } System.out.println( System.out.pr intln( 3 " " 3 args[0] 3 " " 3 y 3 " * " 3 ); } }
1.3. Jeux aec les c!anes c !anes
public class class 8eu+eaines 8eu+eaines { public static void main(String[] args) { int i * 9nteger.value:!(args[,]); String s0 * args[0]; String s- * args[-]; 76 1 67
String s * String.value:!(i); System.out.println("rsultat& "" 3 s 3 """); 76 B 67
i * 9nteger.parse9nt(s) 3 0; System.out.println("rsultat& " 3 i); 76 67
double * +ouble.parse+ouble(s) 3 0; System.out.println("rsultat& " 3 ); 76 + 67
System.out.println("aine lue 2" 3 s0 3 "2"); s * s0.trim(); System.out.println("aine nette 2" 3 s 3 "2"); s * s.to
System.out.print("elles commencent par la meme lettre= "); i! (s0.lengt() ' , >> s-.lengt() ' , >> s0.car1t(,) ** s-.car1t(,)) System.out.println("oui"); else System.out.println("non"); 76 ? 67
System.out.println("s0 ** s- & " 3 (s0 ** s-)); System.out.println("s0.e@uals(s-) & " 3 s0.e@uals(s-)); System.out.println("s0.compareAo(s-) & " 3 s0.compareAo(s-)); System.out.println("s0.compareAo9gnorease(s-) & " 3 s0.compareAo9gnorease(s-)); 76 67
System.out.println("2" s0.startsCit(s-)); System.out.println("2" s0.endsCit(s-)); System.out.println("2" s0.contains(s-)); System.out.println("2" (s0.inde:!(s-) '* ,));
3 s0 3 "2 commence par 2" 3 s- 3 "2 & " 3 3 s0 3 "2 !init par 2" 3 s- 3 "2 & " 3 3 s0 3 "2 contient 2" 3 s- 3 "2 & " 3 3 s0 3 "2 contient 2" 3 s- 3 "2 & " 3
76 D 67
i * s0.inde:!(s-); i! (i '* ,) s0 * s0.substring(,E i) 3 s0.substring(i 3 s-.lengt()); System.out.println("s0 sans s- & 2" 3 s0 3 "2"); 76 9 67
i! ( F (s0.e@uals("bonjour") >> s-.e@uals("bonjour"))) System.out.println("Suive les instructionsF"); else { System.out.println("s0.e@uals(s-) est " 3 s0.e@uals(s-)); System.out.println("ns0 ** s- est " 3 (s0 ** s-)); System.out.println("s0 ** "bonjour" est " 3 (s0 ** "bonjour")); System.out.println("non !ait s0 * s0.intern()"); s0 * s0.intern(); System.out.println("s0 ** s- est encore " 3 (s0 ** s-)); System.out.println("mais s0 ** "bonjour" est deja " 3 (s0 ** "bonjour")); System.out.println("non !ait s- * s-.intern()"); s- * s-.intern(); System.out.println("en!inE mGme s0 ** s- est " 3 (s0 ** s-)); } } }
1.#. $andom public class Handom
Pas de commentaire non plus. La documentation officielle présente la fonction Iat.random() comme une manière simple d’utiliser une instance de la classe plus complète java.util.Handom mais, à défaut d’information plus précise, il faut penser que les algorithmes utilisés par Iat.random() et unObjetRandom .net+ouble() sont les mêmes.
1.%. &alcul de la 'actorielle import java.mat.Big9nteger; public class ?actorielle { 76 @uestion 1 67 static long !actorielle0(int n) { long result * 0; /ile (n ' ,) result 6* (n55); return result; } 76 @uestion B 67 static Big9nteger !actorielle-(int n) { Big9nteger result * Big9nteger.:J%; /ile (n ' ,) result * result.multiply(Big9nteger.value:!(n55)); return result; } public static void main(String[] args) { System.out.println("Aest 0"); long !actKrec0 * 0; !or (int n * 0; n # -L; n33) { long !act * !actorielle0(n); System.out.println(" " 3 n 3 " F * " 3 !act 3 " (rapport& " 3 !act 7 !actKrec0 3 ")"); !actKrec0 * !act; } System.out.println("Aest -"); Big9nteger !actKrec- * Big9nteger.:J%; !or (int n * 0; n # 0,,; n33) { Big9nteger !act * !actorielle-(n); System.out.println(" " 3 n 3 " F * " 3 !act 3 " (rapport& " 3 !act.divide(!actKrec-) 3 ")"); !actKrec- * !act; } } }
La transformation de !actorielle0 en !actorielle- se passe de commentaires. Affichage obtenu AAest 0 0 F * 0 (rapport& 0) - F * - (rapport& -) ...
0M F * 0-0NOL0,,O,PP$-,,, (rapport& 0M) -, F * -O$-M,-,,P0QNNO,,,, (rapport& -,) -0 F * 5O-OM-M,,OMO0M-0OPOP (rapport& 50) -- F * 50-L,NN,Q0PNQOMNPLQN (rapport& ,) ... Aest 0 F * 0 (rapport& 0) - F * - (rapport& -) ... MP F * MO-NPM,OOPPP$-OQQOLN-N0PLQO$,LQ-O-OQ$P,MNM$QNO,QPML0NN$OMO-$PQQQ-MOQ,Q,Q,,$--$QMPPP-MQN0LM-,QQ-M00MP-$N,LPL,LPPN,PON,O-MO0-NOQLNQ$N,,,,,,,,,,,,,,,,,, ,,,, (rapport& MP) MM F * M$$-N-0LOO$MOO0L-NP0NMM-$PPLN-NNQ,,OM,Q0LMNP-NO$P0N-0ONPLM-MN$PML-0QLMMMM$-MM0LN,PMO0ON$MQN0LNL0P-PN-L$NMQM-,P-Q--$QLP-L00PL-0,M0NPNO,,,,,,,,,,,,,,,, ,,,,,, (rapport& MM)
1.(. )uel *our sommes+nous , -uelle !eure est+il , import java.tet.6; import java.util.6; public class +ateourante { public static void main(String[] args) { 77 premiRre maniRre long t * System.currentAimeIillis() 7 0,,,; System.out.println("maintenant& " 3 t 3 " secondes depuis le 07,070MQ,"); 77 deuiRme maniRre +ate d * ne/ +ate(); System.out.println("maintenant& " 3 d); 77 troisiRme maniRre String[] jour * { nullE "+imance"E "undi"E "Iardi"E "Iercredi"E "8eudi"E "Tendredi"E "Samedi" }; String[] mois * { "janvier"E "!vrier"E "mars"E "avril"E "mai"E "juin"E "juillet"E "aoUt"E "septembre"E "octobre"E "novembre"E "dcembre" }; alendar c * alendar.get9nstance(); System.out.println("maintenant& " 3 c.get(alendar.D:
A l’e!écution on obtient maintenant& maintenant& maintenant& maintenant& maintenant&
00,,O-P$0M secondes depuis le 07,070MQ, Sun Jov 0O 00&$0&LM %A -,,O 00 eures $0E le +imance 0O novembre -,,O 0O7007,O 00&$0 0O novembre -,,O 00&$0
La troisième manière est la plus souple, mais la plus laborieuse. "ne qualité de la quatrième manière est qu’elle intègre les particularités locales. Ainsi, par défaut, on obtient 0O7007,O 00&$0, l’affichage court # à la fran$aise %.
1.. Lectures simples au claier / la classe 0canner import java.util.Scanner; public class AestScanner { public static void main(String[] args) { Scanner entree * ne/ Scanner(System.in); int nombre * ,; !loat somme * ,; System.out.print("+onner les nombres (terminer par 50)& "); !loat * entree.net?loat(); /ile ( '* ,) { somme 3* ; nombre33; * entree.net?loat(); }
System.out.println("moyenne& " 3 somme 7 nombre); } }
Simplement pour conna&tre l'équi(alent de la fonction p)thon input()
. Peu utile en *a(a, car les entrées sont passées soit par args
, soit gr+ce à une interface graphique.