الثلاثاء، 21 مايو 2013
11:55 ص

le 1er cour sur Java(Votre premier programme)


Avant de commencer

Avant de commencer, vous devez savoir que tous les programmes Java sont composés d'au moins une classe.
Cette classe doit contenir (applet mise à part) une méthode main. Celle-ci est la méthode principale du programme, c'est elle que la JVM va chercher afin de lancer votre programme. Pour faire court, c'est le point de départ du programme.
Vous voyez donc son importance ! :)
Et pour qu'on se comprenne bien, une méthode est une suite d'instructions à exécuter. Une méthode contient :
  • une entête : celle-ci va être un peu comme la carte d'identité de la méthode. Nous y reviendrons.
  • un corps : le contenu de la méthode. Ce qui va être fait ! Délimité par des accolades {}.
  • une valeur de retour : le résultat que la méthode va retourner. SAUF pour les méthodes de type void qui ne renvoient rien. Nous y reviendrons aussi.

Vous verrez, un peu plus tard, qu'un programme n'est qu'une multitude de classes qui s'utilisent l'une l'autre.
Mais pour le moment, nous n'allons travailler qu'avec une seule classe.
Dans la partie précédente, je vous avais demandé de créer un projet Java ; ouvrez-le si ce n'est pas déjà fait. Donc pour rappel, voici ce que vous aviez sous votre nez :




Vous voyez la fameuse classe dont je vous parlais ? Ici, elle s'appelle sdz1.
Vous pouvez voir que le mot class est précédé du mot public, nous verrons la signification de celui-ci lorsque nous programmerons des objets.

Pour le moment, ce que vous devez retenir c'est que votre classe est définie par un mot clé, class, qu'elle a un nom ; ici, sdz1 et que le contenu de celle-ci est délimité par des accolades,{}.

Comme je vous l'ai dit plus haut, notre unique classe contient la méthode main. La syntaxe de cette méthode est toujours la même :
Code : Java
1
2
3
public static void main(String[] args){
// Contenu de votre classe
}

Ce sera entre les accolades de la méthode main que nous écrirons nos codes sources.
Excuse-nous, mais... Pourquoi as-tu écrit "//Contenu de votre classe" et non "Contenu de votre classe" ?

Bonne question !  
Je vous ai dit plus haut que votre programme Java, avant de pouvoir être exécuté, doit être pré-compilé en byte code. Eh bien la possibilité de forcer le compilateur à ignorer certaines instructions existe !  
On appelle ça des commentaires et il existe deux syntaxes : 
  • les commentaires unilignes : introduits par les symboles //, ils mettent tous ce qui les suit en commentaires, du moment que le texte se trouve sur la même ligne que les //.

Code : Java
1
2
3
4
5
6
public static void main(String[] args){
//Un commentaire
//un autre
//Encore un autre
Ceci n'est pas un commentaire ! ! ! !
}


  • les commentaires multilignes : ils sont introduits par les symboles /* et se terminent par les symboles */.


Code : Java
1
2
3
4
5
6
7
8
9
public static void main(String[] args){
 
/*
Un commentaire
Un autre
Encore un autre
*/
Ceci n'est pas un commentaire ! ! 
}


D'accord ! Mais ça sert à quoi ?

C'est simple : au début, vous ne ferez que de très petits programmes. 
Mais dès que vous aurez pris de la bouteille, la taille de ceux-ci, ainsi que le nombre de classes qui les composera, augmentera.
Vous serez contents de trouver quelques lignes de commentaires au début de votre classe pour vous dire à quoi elle sert, ou encore des commentaires dans une méthode qui fait des choses compliquées afin de savoir ou vous en êtes dans vos traitements...  

Il existe en fait une troisième syntaxe, mais celle-ci à un but particulier. Elle permettra de générer une documentation de votre programme ! Une Javadoc (Java Documentation).
Je n'en parlerai que très peu, et pas dans ce chapitre. Nous verrons cela lorsque nous programmerons des objets mais, pour les curieux, je vous conseille le très bon tutoriel de dworkin.

Je profite de cet aparté sur les commentaires pour vous donner une astuce bien pratique ! 
Il vous arrivera forcément à un moment donné de vouloir mettre une partie de code en commentaire. Dans ce cas, il y a 99,99999999 % de chance que vous choisissiez les commentaires multilignes. 
L'inconvénient, c'est que lorsque vous voudrez remettre votre morceau de code en activité, il vous faudra retirer les /* */. Mais si 5 minutes plus tard, vous voulez remettre la même portion de code en commentaire  .

Regardez ce morceau de code (il ne fait rien du tout, c'est un exemple) :
Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public static void main(String[] args){
 
 String str = "toto";
 int entier = 0;
 
 if(entier != 0){
 
/*
  for(int i = 0; i < 20; i++){
    System.out.println("oui ! ! ! ! !");
  }
//*/
 
 }
}


Vous pouvez voir que j'ai utilisé les commentaires multilignes ! Mais avec une variante... :-° 
La ligne qui ferme les commentaires est précédée... de //. Mais c'est ce qui met une ligne en commentaires... 
C'est idiot de mettre ça là... Ils sont en commentaire !

Je le sais bien, et c'est là qu'est l'astuce. Pour le moment, les deux // sont en commentaires comme les lignes qui se trouvent entre /* et */.
Mais que se passe-t-il si j'ajoute un / devant ma première instruction de commentaire ?
Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public static void main(String[] args){
 
 String str = "toto";
 int entier = 0;
 
 if(entier != 0){
 
//*
  for(int i = 0; i < 20; i++){
    System.out.println("oui ! ! ! ! !");
  }
//*/
 
 }
}


Eh bien là, ce sont mes commentaires multilignes qui sont devenus des commentaires, et mes lignes sont de nouveau actives dans mon code !  

Explique-nous ça !

C'est très simple. Le fait d'ajouter un / devant /* met l'étoile en commentaire... Dans ce cas, il ne s'agit plus d'un commentaire multilignes, mais uniligne ! Et là je crois que vous avez deviné l'utilité de cette ligne //*/... Sur celle-ci, c'est l'instruction de commentaire multiligne fermante qui est en commentaire ! ;) 
Donc, plus besoin d'ajouter de commentaire, d'en effacer, de les remettre, de les ré-effacer...
Vous encadrez la portion de code que vous souhaitez enlever de /* .... //*/ et lorsque vous la voulez à nouveau, vous ajoutez un / devant l'instruction ouvrante des commentaires ! Et si vous voulez remettre la même portion de code en commentaire, enlevez le / ajouté devant /* !

A partir de maintenant et jusqu'à ce que nous programmions des interfaces graphiques, nous allons faire ce qu'on appelle des programmes procéduraux. Cela signifie que le programme se déroulera de façon procédurale.

Euh... késako ?

En fait, un programme procédural est un programme qui s'effectue de haut en basune ligne après l'autre.
Bien sûr, il y a des instructions qui permettent de répéter des morceaux de code, mais le programme en lui même se terminera une fois arrivé à la fin du code.
Ceci vient en opposition à la programmation événementielle (ou graphique) qui elle, est basée sur des événements (clic de souris, choix dans un menu...).

Je pense que j'ai fait le tour de ce que je voulais vous dire...  
Bon : pour votre premier programme, je pense que le traditionnel "Hello World ! ! " est de mise...  
Donc, allons-y ! 

Nous entrons enfin dans le vif du sujet !
Mais ne vous attendez pas à faire un vrai programme tout de suite... 

Maintenant, vous pouvez taper les lignes suivantes entre les accolades de votre méthode main :
Code : Java
1
System.out.print("Hello World !");


N'oubliez surtout pas le ; à la fin de la ligne !
Toutes les instructions en Java sont suivies d'un point virgule.


Une fois que vous avez saisi cette ligne de code dans votre méthode main, vous devez lancer le programme.
Si vous vous souvenez bien de la présentation du chapitre précédent, vous avez dû cliquer sur la flèche blanche dans un rond vert : 




Si vous regardez dans votre console, fenêtre en bas sous Eclipse, vous devez avoir : 



Expliquons un peu cette ligne de code.
Littéralement, elle signifie "la méthode print() va écrire Hello World ! en utilisant l'objet out de la classe System".
  • System : ceci correspond à l'appel d'une classe qui s'appelle "System". C'est une classe utilitaire qui permet surtout d'utiliser l'entrée et la sortie standard.
  • out : objet de la classe System qui gère la sortie standard.
  • print : méthode qui écrit dans la console la chaîne passée en paramètre.

Si vous mettez plusieurs System.out.print, voici ce qui ce passe.
Prenons ce code :
Code : Java
1
2
3
System.out.print("Hello World ! !");
  System.out.print("My name is");
  System.out.print("Cysboy");


Lorsque vous l'exécutez, vous devriez avoir une chaîne de caractères qui se suivent, sans saut à la ligne. En gros, vous devez avoir ceci dans votre console :
Hello World ! !My name isCysboy

Je me doute que vous souhaiteriez faire un retour à la ligne pour que votre texte soit plus lisible...  Pour réussir cela, vous avez plusieurs solutions. 
  • Soit vous utilisez un caractère d'échappement, ici, \n.
  • Soit vous utilisez la méthode println() à la place de la méthode print().


Donc, si nous reprenons notre précédent code et que nous appliquons ceci, voilà ce que ça donnerait :
(notre code modifié) :
Code : Java
1
2
3
System.out.print("Hello World ! ! \n");
  System.out.println("My name is");
  System.out.println("\nCysboy");


Le résultat :
Hello World ! !
My name is

Cysboy

Vous pouvez voir que : 
  • lorsque vous utilisez le caractère d'échappement \n, quelle que soit la méthode appelée, celle-ci intègre immédiatement un retour à la ligne à l'emplacement de ce dernier.
  • lorsque vous utilisez la méthode println(), celle-ci ajoute automatiquement un retour à la ligne à la fin de la chaîne passée en paramètre.
  • rien ne vous empêche de mettre un caractère d'échappement dans la méthode println().


J'en profite au passage pour vous donner deux autres caractères d'échappement :
  • \r : va mettre un retour chariot.
  • \t : va faire une tabulation.


Vous avez sûrement remarqué que la chaîne de caractères que l'on affiche est entourée de " <chaine> ".
En Java, les double quotes sont des délimiteurs de chaînes de caractères ! Si vous voulez afficher un double quote avec la sortie standard, vous devrez "l'échapper" avec un \, ce qui donnerait
System.out.println("coucou mon \"choux\" ! ");


Maintenant que vous savez faire un "Hello World", je vous propose de voir la compilation de vos programmes en ligne de commande. 

Cette sous-partie n'est ici que pour les plus curieux d'entre vous.
Vous pouvez passer outre cette sous-partie si vous le voulez, et aller directement au QCM mais, partez du principe que ça pourrait vous servir un jour...

0 commentaires :

إرسال تعليق

 
Best Blogger Gadgets