Java I - 045246
Java I - 045246
Objectifs
A l’issu de cours, l’étudiant qui l’aura suivi en intégralité avec attention
sera capable de :
Appréhender les concepts de base de la programmation
événementielle ;
Appréhender les concepts de la programmation orientée objet du
Java ;
Concevoir une application simple avec Java ;
Développer un logiciel de gestion avec Java ;
Prérequis
Pour bien assimiler ce cours, l’étudiant doit avoir :
Les notions sur la logique de programmation (algorithme) ;
Les notions élevées en programmation procédurale et structurale
par exemple le langage C ;
Maîtrisé les Méthodes fondamentales d’analyse et de conception
des systèmes d’information ;
La maîtrise de l’utilisation d’un SGBDR (Mysql par exemple).
INTRODUCTION
Double cliquez sur son icône qui se trouve sur le bureau de votre
ordinateur et attendez le chargement ou l’ouverture de l’interface de
développement.
Voici comment se présente l’interface de développement de l’IDE
NetBeans :
Après avoir cliqué sur le bouton Terminer, vous serez devant cette
fenêtre : Interface de programmation.
Aller dans le menu « Exécuter », puis, dans les sous menus qui
apparaissent, cliquer sur la commande « Exécuter le projet principal
» comme le montre la figure suivante :
I.10.2. Interprétation
Le bytecode obtenu par compilation ne peut être exécuté qu’à l’aide de
l’interpréteur. L’exécution s’effectue par la commande java suivie du
nom de la classe à exécuter (sans l’extension .class). Comme lors de la
compilation, il se peut que des classes d’autres répertoires soient
nécessaires. Il faut alors utiliser l’option -classpath.
Le Nom d’une variable est une chaine des caractères qu’on attribue à
une zone mémoire. Tout nom d’une variable en langage Java doit
observer les règles suivantes :
Le nom d’une variable peut être n’importe quoi mais doit
commencer par une lettre minuscule ;
Le nom d’une variable ne doit jamais contenir les caractères
spéciaux, tels que : é, ç, à, -, @, #, ?, ‘,", espace, … (sauf le tiré
de bas « _ » );
Ou encore
typeVariable nomVariable = valeur ;
Cela a été mentionné plus haut : String n'est pas un type de variable
simple, mais un objet (complexe). Notre variable est un objet, on parle
aussi d'une instance : ici, une instance de la classe String. Ce que vous
devez savoir :
String chaineDeCaracteres ;
int nombre ;
int nombrePlusGrand ;
Veillez à bien respecter la casse (Majuscules et minuscules), car une
déclaration de CHAR à la place de char ou autre chose provoquera une
erreur, tout comme une variable de type string à la place de String !
Faites donc bien attention lors de vos déclarations de variables…
Une petite astuce quand même (enfin deux, plutôt) : on peut très bien
compacter les phases de déclaration et d'initialisation en une seule
phase ! Comme ceci :
int nombre = 74;
float pi = 3.1416f;
charcarac = 'z';
String mot = new String("Coucou");
Et lorsque nous avons plusieurs variables d'un même type, nous pouvons
résumer tout ceci à une déclaration :
int nbre1 = 2, nbre2 = 3, nbre3 = 0 ;
Ici, toutes les variables sont des entiers, et toutes sont initialisées.
NB. La déclaration et l’initialisation de nos variable se feront dans la
structure de notre programme Java, précisément dans les accolades
de la méthode principale main(String[ ] args){ /* ici */}
Voici un exemple :
package exercice_declaration_initialisatin_var ;
public class Main {
public static void main(String[] args) {
//Déclaration des variables
int age ;
Sting nom, postnom, prenom ;
boolean etat ;
char sexe ;
float poids ;
//Initialisation des variables
age = 4;
nom = "KASONGA";
postnom = "MBUYI";
prenom = "PASCAL";
sexe = "M" ;
etat = true ;
poids = 20 ;
}
}
Ici, nous voyons bien que nous pouvons affecter des résultats
d'opérations sur des nombres à nos variables, mais aussi affecter des
résultats d'opérations sur des variables de même type.
Très important : on ne peut faire du traitement arithmétique que sur
des variables de même type sous peine de perdre de la précision lors
du calcul.
On ne s'amuse pas à diviser un int par un float , ou pire, par un char !
Ceci est valable pour tous les opérateurs arithmétiques et pour tous
les types de variables numériques. Essayez de garder une certaine
rigueur pour vos calculs arithmétiques.
int i = 123;
Eh bien, Java exécute notre ligne dans cet ordre ! Il fait le calcul (ici
3/2), il caste le résultat en double, puis il l'affecte dans notre variable
resultat.
Vous vous demandez sûrement pourquoi vous n'avez pas 1.5… C'est
simple : lors de la première opération de Java, la JVM voit un cast à
effectuer, mais sur un résultat de calcul. La JVM fait ce calcul
(division de deux int qui, ici, nous donne 1), puis le cast (toujours 1), et
affecte la valeur à la variable (encore et toujours 1). Donc, pour avoir
un résultat correct, il faudrait caster chaque nombre avant de faire
l'opération, comme ceci :
int nbre1 = 3, nbre2 = 2;
double resultat = (double)(nbre1) / (double)(nbre2);
// resultat stocke 1.5
int en String.
int i = 12;
String j = new String();
j = j.valueOf(i);
j est donc une variable de type String contenant la chaîne de
caractères 12. Sachez que ceci fonctionne aussi avec les autres types
II.2.1.2. Exercices
Voici un exemple :
int nbre1, nbre2, resultat ;
nbre1 = 10 ;
nbre2 = 3;
resultat = nbre1 * nbre2;
System.out.println("Résultat = " + resultat);
Sachez aussi que vous pouvez tout à fait mettre des opérations dans
un affichage, comme ceci :
System.out.print("Résultat = " + nbre1 * nbre2);
Je vous ai dit que vos variables de type String sont en réalité des
objets de type String.
Pour que Java puisse lire ce que vous tapez au clavier, vous allez devoir
utiliser un objet de type Scanner. Cet objet peut prendre différents
paramètres, mais ici nous n'en utiliserons qu'un : celui qui correspond
à l'entrée standard en Java.
nouvelle classe et tapez cette ligne de code dans votre méthode main
:
Vous devez avoir une jolie vague rouge sous le mot Scanner. Cliquez sur
la croix rouge sur la gauche et faites un double-clic sur « Ajouter une
importation pour java.util.Scanner » (Figure suivante). Et là, l'erreur
disparaît !
Voilà ce que nous avons fait. Je vous ai dit qu'il fallait indiquer à Java
où se trouve la classe Scanner. Pour faire ceci, nous devons importer
la classe Scanner grâce à l'instruction import. La classe que nous
voulons se trouve dans le package java.util.
Comme je vous l'ai dit dans le point précédent, les opérations en Java
sont soumises à des priorités. Tous ces opérateurs se plient à cette
règle, de la même manière que les opérateurs arithmétiques…
Maintenant que vous avez tout compris, je vais vous présenter une
autre façon d'écrire ce code, avec le même résultat : on ajoute juste
un petit « sinon si… ».
switch (/*Variable*/)
{
case /*Argument*/ :
/*Action*/;
break;
default :
/*Action*/;
}
Je n'ai écrit qu'une ligne de code par instruction case, mais rien ne
vous empêche d'en mettre plusieurs.
Si vous avez essayé ce programme en supprimant l'instruction break;,
vous avez dû vous rendre compte que le switch exécute le code contenu
dans le case 10:, mais aussi dans tous ceux qui suivent ! L'instruction
break; permet de sortir de l'opération en cours. Dans notre cas, on
sort de l'instruction switch, mais nous verrons une autre utilité à
break; dans le chapitre suivant.
Depuis la version 7 de Java, l'instruction switch accepte les objets de
type String en paramètre. De ce fait, cette instruction est donc valide
:
N'oubliez pas que la valeur que vous allez affecter à votre variable
doit être du même type que votre variable. Sachez aussi que rien ne
vous empêche d'insérer une condition ternaire dans une autre
condition ternaire :
En résumé
Les conditions vous permettent de n'exécuter que certains
morceaux de code. Il existe plusieurs sortes de structures
conditionnelles :
la structure if... else if... else ;
la structure switch... case... default;
la structure ? :
Si un bloc d'instructions contient plus d'une ligne, vous devez
l'entourer d'accolades afin de bien en délimiter le début et la
fin.
Pour pouvoir mettre une condition en place, vous devez comparer
des variables à l'aide d'opérateurs logiques.
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
36
s'exécute. Si nous ne l'avions pas fait, nous n'y serions jamais entrés.
Normal, puisque nous testons la condition avant d'entrer dans la boucle
!
Voilà. Ce n’est pas mal, mais il faudrait forcer l'utilisateur à ne taper
que « O » ou « N ». Comment faire ? C'est très simple : avec une boucle
! Il suffit de forcer l'utilisateur à entrer soit « N » soit « O » avec un
while ! Attention, il nous faudra réinitialiser la variable reponse à « ' '
» (caractère vide). Il faudra donc répéter la phase « Voulez-vous
réessayer ? » tant que la réponse donnée n'est pas « O » ou « N ».
Voici notre programme dans son intégralité :
Attention à écrire correctement vos conditions et à bien vérifier vos variables dans vos while,
et dans toutes vos boucles en général. Sinon c'est le drame ! Essayez d'exécuter le programme
précédent sans la réinitialisation de la variable reponse, et vous verrez le résultat ! On n'entre
jamais dans la deuxième boucle, car reponse = 'O' (puisqu’initialisée ainsi au
début du programme). Là, vous ne pourrez jamais changer sa valeur…
Le programme ne s'arrêtera donc jamais ! On appelle ça une « boucle
infinie ». En voici un autre exemple.
int a=1, b=15;
while (a<b)
{
System.out.println("coucou "+a+" fois !!");
}
Si vous lancez ce programme, vous allez voir une quantité astronomique
de « coucou 1 fois !! ». Nous aurions dû ajouter une instruction dans le
bloc d'instructions de notre while pour changer la valeur de a à chaque
tour de boucle, comme ceci :
int a=1, b=15;
while (a<b)
{
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
41
A. Première différence
B. Deuxième différence
Vous voyez donc que ce code ressemble beaucoup à celui utilisé avec la
boucle while, mais il comporte une petite subtilité : ici, plus besoin de
réinitialiser la variable reponse, puisque de toute manière, la boucle
s'exécutera au moins une fois !
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
43
Vous venez d’ajouter une classe à votre projet qui porte le nomme que
vous avez saisi dans la 2ème boite de dialogue (exemple : Mafenetre).
2. Ou encore, vous pouvez faire un clic-droit sur le nom de votre
projet, puis cliquer sur « Nouveau », puis sur « JFrame Form »
Sachez que vous venez d’ajouter une classe à votre projet qui porte
le nomme que vous avez saisi dans la boite de dialogue (exemple :
Mafenetre).
Pour que votre fenêtrée soit prise en charge dans le projet il faut
créer une instance en tapant le code suivant dans la méthode main
(méthode principale) du projet :
Mafenetre fen = new Mafenetre() ;
Exemple :
Fen.SetLocation(300,240) ;
Exercice 1
Créer un programme graphique qui calcule et affiche le prix total d’un
article
Bouton Effacer
Bouton Quitter
Exercice 3
Créer un programme graphique qui calcule et affiche le prix total d’un
article.
Exercice 3
Créer un programme graphique contenant le formulaire suivant :