Module: Programmation Java
Introduction Java
Présentation du langage
• Java est né en 1995 chez Sun Microsystems (Racheté aujourd’hui
par Oracle);
• orienté objet;
• Portable: grâce à la machine virtuelle
• fortement typé:
– Toute variable doit être déclarée avec un type
– Le compilateur vérifie que les utilisations des variables sont
compatibles avec leur type (notamment via un soustypage correct)
– Les types sont d'une part fournis par le langage, mais également par la
définition des classes
• Compilé: En bytecode, i.e., code intermédiaire indépendant de la
machine
• Interprété: Le bytecode est interpété par une machine virtuelle
Java
2
Plan général du cours
• Partie 1: s’adapter à l’environnement JAVA
– Bien débuter
– Environnement de variables
– Écrire et lire
– Traitement conditionnel
– Traitement répétitif
– Tableau
• Partie 2: La programmation orientée objet
• Partie 3: Programmation événementielle
3
Les outils nécessaires
• JVM: Java Virtual Machine
• Pour installer la machine virtuelle Java, on choisit le
JDK (Java Development Kit) ou le JRE (Java Runtime
Environment) correspondant au système
d’exploitation dont on dispose.
• Un environnement de développement intégré (IDE):
Eclipse
4
A retenir
• Tous les programmes Java sont composés d'au
moins une classe. Elle doit contenir une méthode
appelée main : ce sera le point de démarrage de
notre programme.
• Une méthode est une suite d'instructions à exécuter.
C'est un morceau logique de notre programme. Une
méthode contient :
– un en-tête : celui-ci va être en quelque sorte la carte d'identité de la
méthode ;
– un corps : le contenu de la méthode, délimité par des accolades ;
– une valeur de retour : le résultat que la méthode va retourner.
5
1er programme
package projet1;
public class iss1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
6
Description
• Étant donné que l'on a donné le nom de iss1 à notre classe, il
est essentiel de sauver ce fichier sous le nom [Link]
public class iss1 {
définit la classe principale de votre application grâce au mot
clé class. Le nom que vous donnez à cette classe représente le
nom de votre programme, cela signifie qu'une application
Java possède au moins une classe, et que celle-ci possède un
nom correspondant au nom du programme.
7
Description
public static void main (String[] args){
définit la méthode principale de l'application, c'est-à-dire une
procédure propre à la classe est exécutée lors de son appel. Le
mot clé void précédant la méthode main() indique le type de
retour de la fonction, c'est-à-dire le type de valeur que la
méthode doit retourner, (Void = Rien).
Les parenthèses suivant le mot main permettent de définir les
paramètres de la méthode, c'est-à-dire les données qu'elle
reçoit en entrée. Dans cette application le paramètre est String
args[], ce qui correspond à un ensemble (tableau) de chaînes
de caractères.
8
Description
• Enfin les mots clés public et static définissent les
caractéristiques de la méthode main().
• Le mot clé public définit les classes pouvant exécuter
la méthode main(), public signifie donc que toutes
les classes peuvent y avoir accès.
9
Programme « Bonjour »
package projet1;
public class iss1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
[Link]("Hello World");
}
10
Description
[Link]("Hello World");
correspond au corps de la méthode main(). Il s'agit de
l'appel de la méthode println(), possédant un
paramètre (une chaîne de caractères).
Cette méthode permet d'afficher sur la sortie standard
(ici, l'écran) la chaîne de caractère qui lui est passée en
paramètre, en lui ajoutant automatiquement un
caractère de retour à la ligne.
Cette méthode est précédée de [Link]., cela
signifie qu'elle fait partie de l'objet out, faisant lui-
même partie de la classe System.
11
Déclaration des variables
• Une déclaration de variable se fait ainsi:
<Type de la variable> <Nom de la variable> ;
• En Java, nous avons deux types de variables :
– des variables de type simple ou « primitif »: des nombres
entiers, des nombres réels, des booléens ou
encore des caractères.
– des variables de type complexe ou des « objets ».
12
Les variables de type numérique
• Le type byte (1 octet) peut contenir les entiers entre -128
et +127.
– byte temperature;
– temperature = 64;
• Le type short (2 octets) contient les entiers compris entre
-32768 et +32767.
– short vitesseMax;
– vitesseMax = 32000;
• Le type int (4 octets) va de -2*109 à 2*109 (2 et 9 zéros
derrière… ce qui fait déjà un joli nombre).
– int temperatureSoleil;
– temperatureSoleil = 15600000; //La température est exprimée
en kelvins
13
Les variables de type numérique
• Le type long (8 octets) peut aller de à (encore
plus gros…).
– long anneeLumiere;
– anneeLumiere = 9460700000000000L;
• Le type float (4 octets) est utilisé pour les
nombres avec une virgule flottante.
– float pi;
– pi = 3.141592653f;
Ou encore :
– float nombre;
– nombre = 2.0f;
14
Les variables de type numérique
• Le type double (8 octets) est identique
à float, si ce n'est qu'il contient plus de
chiffres derrière la virgule et qu'il n'a pas
de suffixe.
– double division;
– division =
0.333333333333333333333333333333333333333333334d;
15
D’autres types
Des variables stockant un caractère
• Le type char contient un caractère stocké entre
apostrophes (« ' ' »), comme ceci :
– char caractere;
– caractere = 'A';
Des variables de type booléen
• Le type boolean, lui, ne peut contenir que deux
valeurs : true (vrai) ou false (faux), sans guillemets (ces
valeurs sont natives dans le langage, il les comprend
directement et sait les interpréter).
– boolean question;
– question = true;
16
D’autres types
le type String
• Le type String permet de gérer les chaînes de caractères, c'est-à-dire
le stockage de texte.
• Il s'agit d'une variable d'un type plus complexe que l'on appelle objet
(par exemple String).
//Première méthode de déclaration
String phrase;
phrase =" Marrakech";
//Deuxième méthode de déclaration
String str = new String();
str = "Une autre chaîne de caractères";
//Troisième méthode de déclaration
String string = "Une autre chaîne";
//Quatrième méthode de déclaration
String chaine = new String("Et une de plus !");
17
Convention
• tous vos noms de classes doivent commencer
par une majuscule ;
• tous vos noms de variables doivent
commencer par une minuscule ;
• si le nom d'une variable est composé de
plusieurs mots, le premier commence par une
minuscule, le ou les autres par une majuscule,
et ce, sans séparation ;
• tout ceci sans accentuation !
18
Remarque
• On peut très bien compacter les phases de
déclaration et d'initialisation en une seule phase !
Comme ceci :
int entier = 32;
float pi = 3.1416f;
char carac = '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;
19
Opérateurs arithmétiques
int nbre1, nbre2, nbre3; //Déclaration des variables
nbre1 = 1 + 3; //nbre1 vaut 4
nbre2 = 2 * 6; //nbre2 vaut 12
nbre3 = nbre2 / nbre1; //nbre3 vaut 3
nbre1 = 5 % 2; //nbre1 vaut 1, car 5=2*2+1
nbre2 = 99 % 8; //nbre2 vaut 3, car 99=8*12+3
nbre3 = 6 % 3; /*là, nbre3 vaut 0, car il n'y a pas
de reste*/
20
Incrémentation et décrémentation
Incrémentation Décrémentation
• nbre1 = nbre1 + 1; • nbre1 = nbre1 - 1;
• nbre1 += 1; • nbre1 -= 1;
• nbre1++; • nbre1--;
• ++nbre1; • --nbre1;
21
Conversion des types (cast)
• Convertir un type vers un autre type (exemple: du int
vers double) est une technique importante en
programmation, surtout en Java.
• D'un type int en type float :
int i = 12;
float k = (float)i;
• D'un type int en double :
int i = 13;
double k = (double)i;
22
Conversion des types (cast)
• Et inversement :
double i = 1.23;
double j = 2.9999999;
int k = (int)i; //k vaut 1
k = (int)j;
• Dans un résultat:
double nbre1 = 10, nbre2 = 3;
int resultat = (int)(nbre1 / nbre2);
[Link]("Le résultat est = " + resultat);
23
Lire les entrées
• La lecture des entrées clavier se fait via l'objet Scanner qui se
trouve dans le package [Link] que vous devrez importer.
Import [Link];
• Pour pouvoir récupérer les entrées clavier on doit initialiser
l'objet Scanner avec l'entrée standard, [Link].
Scanner sc = new Scanner([Link]);
24
Lire les entrées
Exemple:
Scanner sc = new Scanner([Link]);
[Link]("votre nom: ");
String str = [Link]();
[Link]("Bonjour " + str);
Scanner sc1 = new Scanner ([Link]);
[Link]("age: ");
int i = [Link]();
[Link]("votre age est: " + i);
25
Lire les entrées
• Il y a une méthode de récupération de
données pour chaque type (sauf les char):
nextLine() pour les String, nextInt() pour
les int ..
Scanner sc = new Scanner([Link]);
int i = [Link]();
double d = [Link]();
long l = [Link]();
byte b = [Link]();
26
Lire les entrées
• Il y a un type de variables primitives qui n'est pas pris
en compte par la classe Scanner : il s'agit du type char.
• Pour récupérer un seul caractère, On récupère une
chaîne de caractères, puis on utilise une méthode de
l'objet String (ici, charAt(0) ) afin de récupérer le
premier caractère saisi.
• Exemple:
[Link]("Saisissez une lettre :");
Scanner sc = new Scanner([Link]);
String str = [Link]();
char carac = [Link](0);
[Link]("Vous avez saisi le caractère : " + carac);
27