Java - Les bases

java-intro

Java - Les bases
Code: java-intro

Originaux
url: http://tecfa.unige.ch/guides/tie/html/java-intro/java-intro.html url: http://tecfa.unige.ch/guides/tie/pdf/files/java-intro.pdf

Auteurs et version
• Daniel K. Schneider - Vivian Synteta • Version: 1.2 (modifié le 4/12/00 par VS)

Prérequis
• Petites connaissances en programmation Module technique suppl.: java-util (explication des packages et classpath)

Modules
Module d’exercices: act-java-intro Module technique suivant: java-jsp (Java server pages)
Internet et Education © TECFA 4/12/00

Java - Les bases - .

java-intro-2

Module technique suivant: java-servl (Java servlets) Module technique suppl.: java-jhtml (pages Java actives, démodées !!)

Objectifs
• Notions de Java de base • (pas de "comment insérer un applet dans un page html" !)

Internet et Education

© TECFA 4/12/00

Java - Les bases - 1. Table de matières détaillée

java-intro-3

1. Table de matières détaillée
1. Table de matières détaillée 2. Les premiers pas avec JAVA
2.1 Caractéristiques et usage du langage Java 2.2 Le cycle de développement 2.3 La plus simple application (Hello)

3 4
4 5 6

3. Anatomie d’un programme Java 4. Classes et méthodes: un premier regard
4.1 4.2 4.3 4.4 Les classes Les définitions de méthodes La structure d’un programme JAVA Simple I/O, assignation et simples variables

8 11
11 17 19 20

5. Algorithmique de base
5.1 Instructions les plus importantes 5.2 Les types de données 5.3 Assignation, type cast et expressions simples 5.4 La répétition I: l’instruction for 5.5 La sélection (if/else) et les conditionnels 5.6 Lire des nombres 5.7 La répétition II (while) 5.8 Les exceptions simples 5.9 Classes et méthodes (encore une fois) 5.10 Arrays et Tables

21
21 22 23 24 25 27 28 30 32 34

Internet et Education

© TECFA 4/12/00

Les premiers pas avec JAVA • Buts de ce chapitre: • Donner une feeling pour Java • Apprendre a éditer.1 Caractéristiques et usage du langage Java • Indépendance de la plateforme • Fait pour le réseau: applets. servlets.2. libraries réseau • Petit langage • beaucoup de librairies (packages) • Strictement typé (“typed”) • Fait par Sun (mais plusieurs autres implémentations) Faire des bookmarks • Page Staf2x • Page Pointeurs JAVA de TECFA • Répertoire exemples Staf2x Internet et Education © TECFA 4/12/00 . Les premiers pas avec JAVA java-intro-4 2.Les bases .Java . compiler et consulter la doc on-line 2.

Les premiers pas avec JAVA java-intro-5 2.Les bases .java”) PAS OK Compilateur OK (java *.2.class) Java VM Machine viruelle Erreurs de compilation Entrer du code Début changer PAS Erreurs d’exécution Erreurs logiques OK OK Résultats bons Fin Internet et Education © TECFA 4/12/00 .Java .2 Le cycle de développement corriger Editeur compiler (“javac *.

2.ch/guides/java/staf2x/ex/basics/ // Everything in Java is a class public class Hello { // All programs must have main() public static void main(String[] args) { // Say hello! System. } // This marks the end of main() } // Marks the end of the Hello class Internet et Education © TECFA 4/12/00 .3 La plus simple application (Hello) Exemple 2-1: Hello World http://tecfa.println("Hello World!").unige. Les premiers pas avec JAVA java-intro-6 2.out.Les bases .Java .

Les bases .2.Java . Les premiers pas avec JAVA java-intro-7 Explications • L’application est définie par la classe Hello • // sont des commentaires • Le fichier doit s’appeler Hello.java • Chaque application doit définir une méthode main • Compiler / Exécuter: • javac Hello.java • java Hello • Pour plus d’infos regarder: url: Your first cup of Java Internet et Education © TECFA 4/12/00 .

awt.*.unige. } } Internet et Education © TECFA 4/12/00 . 200).Java . Frame monFrame= new Ring ().setColor (Color.50).setVisible (true).50.. Anatomie d’un programme Java • Note: Il ne faut pas essayer de tout comprendre .yellow). g..*.java */ public static void main (String [ ] args) { // Create a graphics frame of Class Ring // Set the Size and make it appear as // outlined in the paint method.3.20 import java..50.drawString("LA bague !". import java. Exemple 3-1: Simple dessin (Le Ring) Java Gently (2nd edition). // Add functionality for closing the window [coupé ici] public void paint (Graphics g) { // Draw a yellow ring g.awt. p. monFrame. class Ring extends Frame { /* The Ring program inspired by Rings by J M Bishop Dec 1996 http://tecfa.140)..Les bases .drawOval (100. monFrame.setSize (300. Anatomie d’un programme Java java-intro-8 3.ch/guides/java/staf2x/ex/basics/Ring. 110.event. // Label the drawing g.

awt.ch/guides/java/jdk1. Définition de la classe principale "Ring" • Utilisation et élargissement de la classe "système" Frame (fenêtre) class Ring extends Frame { } ..1.Java .awt.Les bases .3. Internet et Education © TECFA 4/12/00 .. import java.html Importation de l’awt (interface utilisateur) import java. Anatomie d’un programme Java java-intro-9 A..1/docs/api/packages.*.event. Packages et classes de l’API • API = application programmer’s interface • Les packages sont des ensembles de classes qui rajoutent de la fonctionalité au langage • Il faut explicitement déclarer chaque package qu’on désire utiliser • Il existe 22 packages dans le JDK 1.7 et PLEINS de classes url: http://tecfa2.unige..*.

monFrame. • on crée un objet (instantiation) du type Frame avec la classe Ring • et on utilise des méthodes de la classe Frame pour définir la taille et l’afficher • . 110.yellow).setSize (300.Java ..setColor (Color.140). • la méthode paint nécessite un argument de type Graphics • "paint" est appelée automatiquement quand le frame se crée • la variable "g" instantie la classe Graphics Appel à des méthodes de la classe Graphics g.50... 200).} • implémente une méthode paint pour afficher le contenu du Frame. Anatomie d’un programme Java java-intro-10 Instantiation d’un objet Ring Frame monFrame= new Ring (). Internet et Education © TECFA 4/12/00 . pour les détails voir plus tard ! Définition de la méthode paint public void paint (Graphics g) { .. monFrame.50).50.3. g.Les bases .setVisible (true).drawString("LA bague !". // Label the drawing g.drawOval (100.

• Des objets peuvent communiquer entre eux par le biais de méthodes "publiques" Syntaxe de class [Modificateur] class NomDeClasse [extends SuperClasse] [implements Interface1[...Java . Interface2]] { CorpsDeClasse } . } Internet et Education © TECFA 4/12/00 .1 Les classes • Une classe représente une définition abstraite des "propriétés" et "capacités" d’un objet • classe = structure d’information + méthodes de traitement d’information. Classes et méthodes: un premier regard 4.4. • Un programme Java est définie par un ensemble de classes • Une fois définie une classe..... on peut (et doit) créer des objets concrets. Classes et méthodes: un premier regard java-intro-11 4. des objets seront crées et des méthodes seront exécutés.. } public void paint (Graphics g) { ...Les bases . détails à suivre plus tard Exemples simples: public class Hello {.. • Lorsque le programme est exécuté..

Les bases .4. Exemple 4-1: Classe et constructeur simple // Game est une classe class Game { } // Game {} est un constructeur Game MyGame = new Game {} Internet et Education © TECFA 4/12/00 . • ils portent le même nom que la classe ! • ils ne retournent aucun type (pas même void). Classes et méthodes: un premier regard java-intro-12 A.Java . Les constructeurs • Ce sont des méthodes spéciales destinées à instantier les classes.

Les bases . Les diagrammes de classe (Voir Java Gently. Classes et méthodes: un premier regard java-intro-13 B. 81ss) Exemple 4-2: Les arbres Variable de classe Classe Trees totalEnquiries main Variable d’instance (mémoire des objets) enquiry acacia noOfEnquiries willow noOfEnquiries palm noOfEnquiries 10 Objets (Instances) Classes Objets Méthodes Valeurs Internet et Education © TECFA 4/12/00 . pp 30.4.Java .

totalEnquiries++. Classes et méthodes: un premier regard java-intro-14 C.unige. } public static void main (String [ ] args) { // on crée 3 arbres Trees acacia = new Trees ().java class Trees { static int totalEnquiries.println ("Number of enquiries for palm trees = " + palm.out. } void enquiry () { noOfEnquiries++.enquiry(). System. Trees willow = new Trees ().Les bases . } } Internet et Education © TECFA 4/12/00 .noOfEnquiries + "\nNumber of total enquiries = " + totalEnquiries ). palm. public Trees () { } public Trees (int n) { noOfEnquiries = n.Java .4. Un programme qui implémente nos arbres //http://tecfa. Trees palm = new Trees (10).ch/guides/java/staf2x/ex/basics/Trees. int noOfEnquiries.

noOfEnquiries + "\nNumber of total enquiries = " + totalEnquiries ). Les constructeurs (again) • On définit deux constructeurs: • un qui crée un simple objet de classe Trees • un qui permet en plus de donner une valeur à la variable noOfEnquiries public Trees () { } public Trees (int n) { noOfEnquiries = n. Classes et méthodes: un premier regard java-intro-15 D. Simple Output • System.println ("Number of enquiries for palm trees = " + palm.println imprime un string • Notez que l’on peut concatener strings et nombres pour créer un seul string: System.4.Java .out. } E.out.Les bases . Internet et Education © TECFA 4/12/00 .

Une méthode très simple void enquiry () { noOfEnquiries++. } • enquiry incrémente des compteurs à chaque fois que l’on apelle palm. • appelle (invoque) cette méthode sur l’objet palm qui a été crée • une méthode est toujours attachée à un objet ou une classe.enquiry().4. Internet et Education © TECFA 4/12/00 .Les bases . totalEnquiries++. Classes et méthodes: un premier regard java-intro-16 F.Java .

Internet et Education © TECFA 4/12/00 .4.2 Les définitions de méthodes • Détails.. Classes et méthodes: un premier regard java-intro-17 4. exemples. mais que des sous-classes doivent implémenter (à voir plus tard) • static: Méthode qui s’applique uniquement à la classe et aux variables de classe (pas aux instances. Type nom_de_variables... explications etc.. . (Type nom_de_variables..Java . Dans ce cas seulement. à voir plus tard) • protected et final: voir plus tard . voir plus tard ! Syntaxe d’une méthode Syntaxe: [Modificateurs] TypeRetourné NomDeMéthode(ListeDeParamètres) { CorpsDeLaMéthode } Les méthodes ont toujours un "TypeRetourné" • Le TypeRetourné indique le type que la méthode "retourne" quand on l’invoque.Les bases . • sauf s’il s’agit de constructeurs. aucun type n’est spécifié (pas même void).) • Exemple de modificateurs: • public: La méthode peut être utilisée par d’autres méthodes en dehors de la même classe • private: Le contraire (en plus ce sont de méthodes "final") • abstract: Méthodes d’interfaces sans code. • La liste des paramètres s’exprime comme en langage C..

. } • Une méthode publique pour initialiser un applet public class MyEAIapplet extends Applet { .} • Une méthode statique typique: public static void main (String [ ] args) {.Les bases .. Classes et méthodes: un premier regard java-intro-18 A. (voir: D. mais pas la même liste de paramètres..... Le langage JAVA est un langage polymorphique: • Il est possible de faire de la surcharge de nom de méthodes : • utiliser un nom de méthode qui existe déjà pour une méthode de la même classe ou d’une superclasse.4.} public void init() { B. • Surcharge "horizontale" : déclarer une méthode qui a le même nom qu’une autre méthode. • Il existe deux types de surcharge: • Surcharge "verticale" : déclarer une méthode de même spécification qu’une méthode héritée. “Les constructeurs (again)” [15]) Internet et Education © TECFA 4/12/00 .. mais en faire une spécification différente. Object what) { .. Exemples: • Une méthode publique typique qui ne retourne rien: public void paint (Graphics g) { .Java .. } • Une méthode publique qui retourne une valeur booléenne: public boolean action(Event event.

sélection.Les bases . exception) © TECFA 4/12/00 methodes ( void ou typed ) Internet et Education . Classes et méthodes: un premier regard java-intro-19 4.3 La structure d’un programme JAVA programme fait avec des classes fait avec des membres sont champs sont variables objets déclarés avec types classes constructeurs paramètres champs instructions (champs) (invocation. assignation.Java . répétition.4.

readLine().unige.4 Simple I/O.in)). System.println("What is your name?"). Classes et méthodes: un premier regard java-intro-20 4.io.*. Définir un input buffer BufferedReader in = new BufferedReader (new InputStreamReader(System.readLine() Internet et Education © TECFA 4/12/00 .java import java.println("Bonjour " + name).4.in)).ch/guides/java/staf2x/ex/basics/Greetings.Java .Les bases .out.1 Dec 1997 */ public static void main (String [] args) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader(System. // 2. Utiliser: String xxxx = in. System. assignation et simples variables Exemple 4-3: HelloWorld interactif http://tecfa. class Greetings { /* A simple greetings program by J M Bishop Oct 1996 * -------------------------Java 1.out. String name = in. } } • Ignorez comment fonctionne le input pour le moment Mémorisez la méthode pour lire une ligne: // 1.

5 “La sélection (if/else) et les conditionnels” [25] 5. type cast et expressions simples” [23] 5.. si alors sinon . etc..4 “La répétition I: l’instruction for” [24] 5..1 Instructions les plus importantes Nom assignation for if while Fonctionalité assigner une valeur à une variable "Pour faire". Algorithmique de base java-intro-21 5.5. "selection". faire N fois.9 “Classes et méthodes (encore une fois)” [32] "tant que faire". invoquer une expressions méthodes etc. Voir: 5.. Dans ce contexte on parle aussi de structures de contrôle. 5. Algorithmique de base • Formule: Programme = structure de données + algorithmes • Les algorithmes sont des instructions qui manipulent les données.Les bases .7 “La répétition II (while)” [28] 5.8 “Les exceptions simples” [30] 5. Internet et Education © TECFA 4/12/00 . boucler tant qu’une condition soit remplie "essayer" et si cela ne marche pas faire try autre chose calculer quelque chose.3 “Assignation.Java .

a-z. * Vecteurs et Matrices int i [].5.456789 double 10e308 2.1 Autres boolean true false true char A-Z.!@.0 false "" selon le type "" Internet et Education © TECFA 4/12/00 . Classes Java String "... Algorithmique de base java-intro-22 5..Les bases . xxx [] char tablo [] []...0 0.2 Les types de données Max / ou valeurs possiExemple bles Nombres byte 127 89 short 32767 -3 int 2147483647 10 long 10e18 10 float 10e38 123...Java ." "Daniel S" pleins d’autres ! Initiatlisation par défaut 0 0 0 0 0.

variable voir aussi 5. Algorithmique de base java-intro-23 5.out.5.Java .unige.java // public class SimpleCalculs { // All programs must have main() public static void main(String[] args) { int somme = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10. float moyenne = somme / 10.ch/guides/java/staf2x/ex/basics/SimpleCalculs. type cast et expressions simples Syntaxe: assignation simple variable = expression. } } Internet et Education © TECFA 4/12/00 . System.2 “Les types de données” [22] i tree x+y/10 "Sylvere M" palm.3 Assignation.enquiry() vrai | faux Exemples expression voir les manuels Java Exemple 5-1: Simple Calcul http://tecfa.println ("La moyenne est égale à " + moyenne).Les bases .

i<10.println("J’aimerai t’embrasser " + i + " fois\n "). check.Les bases . int Kaspar = 0.ch/guides/java/staf2x/ex/basics/ForYou.5. update) { body } start check update body initialisations de variables d’itération condition qui teste s’il faut sortir de la boucle mise à jour de variables d’itération instruction ou bloc d’instructions int I=0.unige.out. System.println(i + "fois. i++) { System.java public class ForYou { // All programs must have main() public static void main(String[] args) { // Say hello! for (int i=1.out. i++.") Exemples Exemple 5-2: Imprimer des messages un peu répétitifs http://tecfa.Java .4 La répétition I: l’instruction for Syntaxe: For-statement for (start. } } } Internet et Education © TECFA 4/12/00 . i<11. Algorithmique de base java-intro-24 5. ou i=i+a.

} else System.5 La sélection (if/else) et les conditionnels Syntaxe: if if (condition) bloc_d’instructions else bloc_d’instructions condition ( . } bloc_ d’instructions instruction simple a = b.out.5.} ou instruction_simple. Internet et Education © TECFA 4/12/00 .length()) { System.println ("forever") . instruction.Java ..out. Exemples (nombre > 1) { a = 1 + a.println("The second string is NOT shorter")..println("The second string is shorter")...length() < thefirststring. b = 2 + a.Les bases .. } for (int i=1) { System. .. Illustration: if (thesecondstring.out.. Algorithmique de base java-intro-25 5. ) {instruction.

*.5. Algorithmique de base java-intro-26 Exemple 5-3: Comparaison de la longeur de 2 strings import java.println("Please: input a string"). System.println("The second string is shorter"). System.Les bases .println("The two strings have the same length").out.readLine().out. class Condition { /* A simple program to say what is the shortest string of two * -------------------------Java 1.out.length()) {System.println("The first string is shorter"). } } } } Internet et Education © TECFA 4/12/00 . String thefirststring = in.io.length() < thefirststring.length()) { System. String thesecondstring = in.out.1 Oct 1998 */ public static void main (String [] args) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader(System. } else { if (thesecondstring.readLine().out.Java .println("Please: input another string").length() == thefirststring.in)). } else { System. if (thesecondstring.

out.println("Positive number").*. class Sign { /* A simple program to get the sign of a number * -------------------------Java 1.1 Oct 1998 */ public static void main (String [] args) throws IOException.unige.out. } } } Internet et Education © TECFA 4/12/00 . } else { System.println("Please: input a number"). NumberFormatException { BufferedReader in = new BufferedReader (new InputStreamReader(System.intValue() < 0) { System.6 Lire des nombres Exemple 5-4: Lire un nombre http://tecfa.java import java. if (thenumber.out. Algorithmique de base java-intro-27 5.ch/guides/java/staf2x/ex/basics/Sign. System.Java .in)).Les bases .io.5.println("Negative number").readLine()). Integer thenumber = new Integer(in.

readLine(). } Internet et Education © TECFA 4/12/00 . Initialisation_des_conditions while (a < 10) { while (conditions) { n = n + a. bloc_d’instructions a = a + 1.5.Java .intValue().7 La répétition II (while) Syntaxe: while Exemples while (conditions) { bloc_d’instructions } comme pour le "if" (voir 5.5 “La sélection (if/else) et les conditionnels” [25] Voici la logique d’un while: a = 0.length()!=0) { TheSum = TheSum + (new Integer(CurrentNumber)). CurrentNumber=in.Les bases . Algorithmique de base java-intro-28 5. changement_des conditions } } Illustration: while (CurrentNumber.

intValue().out. Algorithmique de base java-intro-29 Exemple 5-5: Lire une série de nombres http://tecfa.Les bases .in)).length()!=0) { TheSum = TheSum + (new Integer(CurrentNumber)). System.readLine(). } } Internet et Education © TECFA 4/12/00 . int TheSum = 0.out. System. just press enter.println("When you have finished.ch/guides/java/staf2x/ex/basics/Sum.*.readLine().println("Please:"). class Sum { /* A simple program to get the sum of a list of numbers * -------------------------Java 1. while (CurrentNumber.unige."). String CurrentNumber = in. pressing enter between each number.").println("The sum of all the numbers is " + TheSum).5.out.1 Oct 1998 */ public static void main (String [] args) throws IOException. CurrentNumber=in. NumberFormatException { BufferedReader in = new BufferedReader (new InputStreamReader(System.Java .println("Input a list of numbers.java import java.out. System.io. } System.

Java . Algorithmique de base java-intro-30 5.")..println("The string you typed is not a valid java number.out. Signal d’exception Signaux définies par le système définis par vous-même Exemples NumberFormatException Illustration: try { Integer TheNumber = new Integer(in. System.println("The string you typed is a valid java number.8 Les exceptions simples Syntaxe: try { bloc_d’instructions } catch (Signal_d’exception var) { bloc_d’instructions } catch (Signal_d’exception var) { bloc_d’instructions } . } Internet et Education © TECFA 4/12/00 .").out.5.readLine()). } catch (NumberFormatException e) { System.Les bases ..

1 Oct 1998 */ public static void main (String [] args) throws IOException.").out.ch/guides/java/staf2x/ex/basics/Catch. NumberFormatException { BufferedReader in = new BufferedReader (new InputStreamReader(System.unige.println("Please: Input a number. class Catch { /* A simple program to read a string and tell if it is a valid java number * -------------------------Java 1. System.out. try { Integer TheNumber = new Integer(in. } catch (NumberFormatException e) { System.io.").Java .*.").5. System.readLine()). } } } Internet et Education © TECFA 4/12/00 .out.in)). Algorithmique de base java-intro-31 Exemple 5-6: Lire un nombre et gérer les exceptions http://tecfa.println("The string you typed is not a valid java number.Les bases .java import java.println("The string you typed is a valid java number.

5.io. itération Exemple 5-7: Les palindromes import java.out.out. System. System.println("Hopefully.out.out.println(Palindromize1(TheString) + " (using method 1)").9 Classes et méthodes (encore une fois) • récursion vs.in)).readLine().println("Input a string"). System.println("The palindrome is:").out.Les bases . // constructor for the class Call () throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System. System. Algorithmique de base java-intro-32 5. } // Simple Main method public static void main (String [] args) throws IOException { Call TheCall = new Call(). we get the same result").*.Java . System. TheString = in.println("Please:"). class Call { /* A simple program to show the way java methods are invoked * -------------------------Java 1. System.1 Oct 1998 */ static String TheString.out. } Internet et Education © TECFA 4/12/00 .println(Palindromize2(TheString) + " (using method 2)").

1). Algorithmique de base java-intro-33 String Palindromize1 (String AString) { if (AString. i--) { ThePalindrome = ThePalindrome. } } Internet et Education © TECFA 4/12/00 .concat(AString.Java .Les bases . } return ThePalindrome.i + 1)). i >= 0.substring(0. for (int i = (AString.length() .5. } else { // return the palindromized (2-last element) + 1st char return Palindromize1(AString. } } String Palindromize2 (String AString) { String ThePalindrome = new String().concat(AString.substring(i.1)).length() < 2) { return AString.substring(1)).

1 Oct 1998 */ public static void main (String [] args) throws IOException.println("Input a list of numbers. just press enter. System.*. System.out. class Table2 { /* A VERY simple program to show how to use an array * -------------------------Java 1.println("Please:").println("When you have finished.unige. System. Algorithmique de base java-intro-34 5.").java import java.5.Les bases . NumberFormatException { BufferedReader in = new BufferedReader (new InputStreamReader(System. Exemple 5-8: Lire des nombres et les mettre dans un tableau http://tecfa. pressing enter between each number.out.").10 Arrays et Tables Syntaxe: Simples tables int TheTable[] = new int[100]. Exemple Définit une table avec 100 éléments. chaque élément doit être un nombre entier.ch/guides/java/staf2x/ex/basics/Table2.out.Java . Internet et Education © TECFA 4/12/00 .io.in)).

Les bases . for (int i = 0. i++) { System. while (CurrentNumber. Algorithmique de base int TheTableLength = 0. java-intro-35 int TheTable[] = new int[100].out. } } } Internet et Education © TECFA 4/12/00 .out.1] = (new Integer(CurrentNumber)). } System.print(TheTable[i] + " ").intValue().readLine().println("The computer has a very big short term memory (100 elements max):"). String CurrentNumber = in.Java .5. CurrentNumber=in. TheTable[TheTableLength .readLine(). i < (TheTableLength).length()!=0) { TheTableLength = TheTableLength + 1.

Les bases . Algorithmique de base java-intro-36 Internet et Education © TECFA 4/12/00 .5.Java .

Sign up to vote on this title
UsefulNot useful