Vous êtes sur la page 1sur 16

E COLE S UPERIEURE DE G ESTION D' I NFORMATIQUE ET DES S CIENCES

Lomé : 07BP 13517 Tél: (228) 22201293 / 70416724 / 22225017 E-mail : esgis.togo@esgis.org
Cotonou : 06BP 3233 Tél: (229) 21 32 47 73 E-mail : esgis.benin@esgis.org
Libreville : BP 1359 Tél : (241) 05 45 45 24 E-mail : esgis.gabon@esgis.org
Site Web : www.esgis.org

INTRODUCTION AU
LANGAGE JAVA
Licence 1 Informatique, Réseaux et Télécommunications
Année académique 2020-2021

GBEDEVI Akouyo Yvette


yvettegbedevia@gmail.com
Ingénieur Logiciel
Partie II :
Le langage Java
Chapitre 0
Installer les outils de développement

Apparu fin 1995 début 1996 et développé par Sun Microsystems Java s'est très rapidement taillé
une place importante en particulier dans le domaine de l'internet et des applications client-serveur.

Destiné au départ à la programmation de centraux téléphoniques sous l'appellation de langage


"oak", la société Sun a eu l'idée de le recentrer sur les applications de l'internet et des réseaux. C'est
un langage en évolution permanente Java 15 est la dernière version de java fondée sur la version
15 du JDK (Java Development Kit de Sun : http://java.sun.com)

Les objectifs de java sont d'être multi-plateformes et d'assurer la sécurité aussi bien pendant le
développement que pendant l'utilisation d'un programme java. Il est en passe de détrôner le langage
C++ dont il hérite partiellement la syntaxe mais non ses défauts. Comme C++ et Delphi, java est
algorithmique et orienté objet à ce titre il peut effectuer comme ses compagnons, toutes les tâches
d'un tel langage (bureautiques, graphiques, multimédias, bases de données, environnement de
développement, etc...). Son point fort qui le démarque des autres est sa portabilité due (en théorie)
à ses bibliothèques de classes indépendantes de la plate-forme, ce qui est le point essentiel de la
programmation sur internet ou plusieurs machines dissemblables sont interconnectées.

La réalisation multi-plateformes dépend en fait du système d'exploitation et de sa capacité à


posséder des outils de compilation et d'interprétation de la machine virtuelle Java.

En Java l'on développe deux genres de programmes :

• Les applications qui sont des logiciels classiques s'exécutant directement sur une plate-
forme spécifique soit à travers une machine virtuelle java soit directement en code
exécutable par le système d'exploitation. (code natif).
• les applets qui sont des programmes java insérés dans un document HTML s'exécutant à
travers la machine virtuelle java du navigateur lisant le document HTML.

• Des applications pour appareils mobiles, avec J2ME ;


• et bien d'autres ! Java EE, JMF, J3D pour la 3D…

1. Installation des outils de développement


1.1 Installer le JDK ou JRE

Le JRE contient tout le nécessaire pour que vos programmes Java puissent être exécutés sur votre
ordinateur ; le JDK, en plus de contenir le JRE, contient tout le nécessaire pour développer,
compiler…

Java permet de développer différents types d'applications ; il y a donc des environnements


permettant de créer des programmes pour différentes plates-formes :

• J2SE (Java 2 Standard Edition, celui qui nous intéresse dans cet ouvrage) : permet de
développer des applications dites « client lourd », par exemple Word, Excel, la suite
OpenOffice.org… Toutes ces applications sont des « clients lourds » . C'est ce que nous
allons faire dans ce cours
• Java EE (Java Enterprise Edition) : permet de développer des applications web en Java.
On parle aussi de clients légers.
• J2ME (Java 2 Micro Edition) : permet de développer des applications pour appareils
portables, comme des téléphones portables, des PDA…

1.2 Les Environnements de développement intégrés (IDE)

Ë Eclispe IDE

« Eclipse IDE » est un environnement de développement libre permettant de créer des programmes
dans de nombreux langages de programmation (Java, C++, PHP…). C'est l'outil que nous allons
utiliser pour programmer.
Eclipse IDE est lui-même principalement écrit en Java.

La spécificité d'Eclipse IDE vient du fait que son architecture est totalement développée autour
de la notion de plugin. Cela signifie que toutes ses fonctionnalités sont développées en tant que
plugins. Pour faire court, si vous voulez ajouter des fonctionnalités à Eclipse, vous devez :

• télécharger le plugin correspondant ;


• copier les fichiers spécifiés dans les répertoires spécifiés ;
• démarrer Eclipse, et ça y est !

Ë Netbeans
Ë Intellij IDEA
2. Votre premier programme en Java

Les programmes Java sont, avant d'être utilisés par la machine virtuelle, précompilés en byte code
(par votre IDE ou à la main). Ce byte code n'est compréhensible que par une JVM, et c'est celle-ci
qui va faire le lien entre ce code et votre machine.
un byte code (il existe plusieurs types de byte code, mais nous parlons ici de celui créé par Java)
n'est rien d'autre qu'un code intermédiaire entre votre code Java et le code machine. Ce code
particulier se trouve dans les fichiers précompilés de vos programmes ; en Java, un fichier source
a pour extension .java et un fichier précompilé a l'extension .class : c'est dans ce dernier que vous
trouverez du byte code. Je vous invite à examiner un fichier .class à la fin de cette partie (vous en
aurez au moins un), mais je vous préviens, c'est illisible !

Par contre, vos fichiers .java sont de simples fichiers texte dont l'extension a été changée. Vous
pouvez donc les ouvrir, les créer ou encore les mettre à jour avec le Bloc-notes de Windows, par
exemple. Cela implique que, si vous le souhaitez, vous pouvez écrire des programmes Java avec
le Bloc-notes ou encore avec Notepad++

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 de 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.

Hello World

Maintenant, essayons de taper le code suivant :

1 public static void main(String[] args){


2 System.out.print("Hello World !");
3 }

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 » . Avant que vous arrachiez les cheveux, voici quelques
précisions :

• System : ceci correspond à l'appel d'une classe qui se nomme « System » . C'est une classe
utilitaire qui permet surtout d'utiliser l'entrée et la sortie standard, c'est-à-dire la saisie
clavier et l'affichage à l'écran.
• out : objet de la classe System qui gère la sortie standard.
• print : méthode qui écrit dans la console le texte passé en paramètre (entre les parenthèses).

Prenons le code suivant :

1 System.out.print("Hello World !");


2 System.out.print("My name is");
3 System.out.print("Cysboy");

Lorsque vous l'exécutez, vous devriez voir des chaînes de caractères qui se suivent sans saut de
ligne. Autrement dit, ceci s'affichera dans votre console :

1 Hello World !My name isCysboy

vous souhaiteriez insérer un retour à la ligne pour que votre texte soit plus lisible… Pour 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 code précédent et que nous appliquons cela, voici ce que ça
donnerait :

1 System.out.print("Hello World ! \n");


2 System.out.println("My name is");
3 System.out.println("\nCysboy");

Avec pour résultat :


1 Hello World !
2 My name is
3
4 Cysboy

Vous pouvez voir que :

• lorsque vous utilisez le caractère d'échappement \n, quelle que soit la méthode appelée,
celle-ci ajoute immédiatement un retour à la ligne à son emplacement ;
• 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 ;
• un caractère d'échappement peut être mis dans la méthode println().

Deux autres caractères d’échappement:

1. \r va insérer un retour chariot, parfois utilisé aussi pour les retours à la ligne ;
2. \t va faire une tabulation.

En résumé

• La JVM est le cœur de Java.


• Elle fait fonctionner vos programmes Java, précompilés en byte code.
• Les fichiers contenant le code source de vos programmes Java ont l'extension .java.
• Les fichiers précompilés correspondant à vos codes source Java ont l'extension .class.
• Le byte code est un code intermédiaire entre celui de votre programme et celui que votre
machine peut comprendre.
• Un programme Java, codé sous Windows, peut être précompilé sous Mac et enfin exécuté
sous Linux.
• Votre machine NE PEUT PAS comprendre le byte code, elle a besoin de la JVM.
• Tous les programmes Java sont composés d'au moins une classe.
• Le point de départ de tout programme Java est la méthode public static void main(String[]
args).
• On peut afficher des messages dans la console grâce à ces instructions :
o System.out.println, qui affiche un message avec un saut de ligne à la fin ;
o System.out.print, qui affiche un message sans saut de ligne.
Chapitre 1
Les variables et les opérateurs

Dans ce chapitre, nous allons découvrir les variables. On les retrouve dans la quasi-totalité des
langages de programmation. Une variable est un élément qui stocke des informations de toute
sorte en mémoire : des chiffres, des résultats de calcul, des tableaux, des renseignements fournis
par l'utilisateur…

Vous ne pourrez pas programmer sans variables.

1. Petit rappel

Un petit rappel sur le fonctionnement d'un ordinateur et particulièrement sur la façon dont ce
dernier interprète notre façon de voir le monde…

Vous n'êtes pas sans savoir que votre ordinateur ne parle qu'une seule langue : le binaire ! Le
langage binaire est une simple suite de 0 et de 1. Vous devez vous rendre compte qu'il nous
serait très difficile, en tant qu'êtres humains, d'écrire des programmes informatiques pour
expliquer à nos ordinateurs ce qu'ils doivent faire, entièrement en binaire… Vous imaginez !
Des millions de 0 et de 1 qui se suivent ! Non, ce n'était pas possible ! De ce fait, des langages
de programmation ont été créés afin que nous ayons à disposition des instructions claires pour
créer nos programmes. Ces programmes sont ensuite compilés pour que nos instructions
humainement compréhensibles soient, après coup, compréhensible par votre machine.

Le langage binaire est donc une suite de 0 et de 1 qu'on appelle bit. Si vous êtes habitués à la
manipulation de fichiers (audio, vidéos, etc.) vous devez savoir qu'il existe plusieurs catégories
de poids de programme (Ko, Mo, Go, etc.). Tous ces poids correspondent au système métrique
informatique. Le tableau suivant présente les poids les plus fréquemment rencontrés :

Raccourcis Traduction Correspondance


b Bit C'est la plus petite valeur informatique : soit 0 soit 1
o Octet regroupement de 8 bits, par exemple : 01011101
Ko Kilo Octet regroupement de 1024 octets
Mo Mega Octet regroupement de 1024 ko
Raccourcis Traduction Correspondance
Go Giga Octet regroupement de 1024 Mo
To Tera Octet regroupement de 1024 Go

2. Les différents types de variables


Une déclaration de variable se fait comme ceci :

1<Type de la variable> <Nom de la variable> ;

Cette opération se termine toujours par un point-virgule « ; » (comme toutes les instructions de
ce langage). Ensuite, on l'initialise en entrant une valeur.

En Java, nous avons deux types de variables :

1. des variables de type simple ou « primitif » ;


2. des variables de type complexe ou des « objets ».

Ce qu'on appelle des types simples ou types primitifs, en Java, ce sont tout bonnement des
nombres entiers, des nombres réels, des booléens ou encore des caractères, et vous allez voir
qu'il y a plusieurs façons de déclarer certains de ces types.

2.1 Les variables de type numérique

a. Le type byte (1 octet) peut contenir les entiers entre -128 et +127.

1 byte temperature;
2 temperature = 64;

b. Le type short (2 octets) contient les entiers compris entre -32768 et +32767.
1 short vitesseMax;
2 vitesseMax = 32000;

c. 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).

1 int temperatureSoleil;
2 temperatureSoleil = 15600000; //La température est
exprimée en kelvins

18 18
d. Le type long (8 octets) peut aller de −9∗10 à 9∗10 (encore plus gros…).

1 long anneeLumiere;
2 anneeLumiere = 9460700000000000L;

Afin d'informer la JVM que le type utilisé est long, vous DEVEZ ajouter un "L" à la fin de votre
nombre, sinon le compilateur essaiera d'allouer ce dernier dans une taille d'espace mémoire de type
entier et votre code ne compilera pas si votre nombre est trop grand…

e. Le type float (4 octets) est utilisé pour les nombres avec une virgule flottante.

1 float pi;
2 pi = 3.141592653f;

Ou encore :

1 float nombre;
2 nombre = 2.0f;

Remarque:

Nous ne mettons pas une virgule, mais un point ! Et vous remarquerez aussi que même si le nombre
en question est rond, on écrit « .0 » derrière celui-ci, le tout suivi de « f ».
f. 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.

1 double division;
2 division = 0.3333333333333333333333333333334d;

Remarque :
Ici encore, vous devez utiliser une lettre - le « d » - pour parfaire la déclaration de votre variable.

2.2 Les variables stockant un caractère

Le type char contient un caractère stocké entre apostrophes (« ' ' »), comme ceci :

1 char caractere;
2 caractere = 'A';

2.3 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).

1 boolean question;
2 question = true;

2.4 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. Vous verrez que celle-ci
s'utilise un peu différemment des variables précédentes :
1 //Première méthode de déclaration
2 String phrase;
3 phrase = "Titi et Grosminet";
4
5 //Deuxième méthode de déclaration
6 String str = new String();
7 str = "Une autre chaîne de caractères";
8
9 //Troisième méthode de déclaration
10 String string = "Une autre chaîne";
11
12 //Quatrième méthode de déclaration
13 String chaine = new String("Et une de plus !");

Attention :

String commence par une majuscule ! Et lors de l'initialisation, on utilise des doubles cotes (« " "
»).
String n'est pas un type de variable, mais un objet. Notre variable est un objet, on parle aussi d'une
instance : ici, une instance de la classe String.

Pourquoi String commence par une majuscule et pas les autres ?

Il s'agit d'une convention de nommage. En fait, c'est une façon d'appeler nos classes, nos variables,
etc. Il faut que vous essayiez de la respecter au maximum. Cette convention, la voici :

• 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 !

Voici quelques exemples de noms de classes et de variables :

1 public class Toto{}


2 public class Nombre{}
3 public class TotoEtTiti{}
4 String chaine;
5 String chaineDeCaracteres;
6 int nombre;
7 int nombrePlusGrand;
Les variables de type String sont des objets. Les objets sont définis par une ossature (un squelette)
qui est en fait une classe. Ici, nous utilisons un objet String défini par une classe qui s'appelle «
String » ; c'est pourquoi String a une majuscule et pas int, float, etc., qui eux ne sont pas définis
par une classe.

Remarque:

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 :

1 int entier = 32;


2 float pi = 3.1416f;
3 char carac = 'z';
4 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 :

1 int nbre1 = 2, nbre2 = 3, nbre3 = 0;

Ici, toutes les variables sont des entiers, et toutes sont initialisées.
Type élémentaire Intervalle de variation Nombre de bits

boolean false,true 1 bit


byte [-128, +128] 8 bits
char Caractères Unicode (valeurs 16 bits
de 0 à 65536)
double Virgule flottante double 64 bits
précision ~5.10 308
float Virgule flottante simple 32 bits
précision ~9.10 18
int entier signé : [2*109 à 2*109 ] 32 bits
long entier signé long : [-9∗1018 64 bits
18
à 9∗10 ]
short Entier signé court: [-32768 et 16 bits
+32767]

Table 1: Tableau synthétique des types primitifs en Java

3. Les opérateurs

3.1 Arithmétiques

Les opérateurs arithmétiques sont ceux que l'on apprend à l'école primaire… ou presque :

• « + » : permet d'additionner deux variables numériques (mais aussi de concaténer des


chaînes de caractères ; ne vous inquiétez pas, on aura l'occasion d'y revenir).
• « - » : permet de soustraire deux variables numériques.
• « * » : permet de multiplier deux variables numériques.
• « / » : permet de diviser deux variables numériques (mais je crois que vous aviez deviné).
• « % » : permet de renvoyer le reste de la division entière de deux variables de type
numérique ; cet opérateur s'appelle le modulo.
Opérateur priorité Action Exemples
+ 1 Signe positif +a; +(a-b); +7 (unaire)
- 1 Sign négatif -a; -(a-b); -7 (unaire)
* 2 Multiplication 5*4; 12.7*(-8.31); 5*2.6
/ 2 Division 5/2; 5.0/2; 5.0/2.0
% 2 Reste ou modulo 5%2; 5.0%2; 5.0%2.0
+ 3 Addition a+b; -8.53 + 10; 2+3
- 3 Soustraction a-b; -8.53 - 10; 2-3

Table 2: Tableau Récapitulatif des opérations arithmétiques

Ces opérateurs sont binaires (à deux opérandes) exceptés les opérateurs de signe positif ou négatif.
Ils travaillent tous avec des opérandes de types entiers ou réels. Le résultat de l'opération est
converti automatiquement en valeur du type des opérandes.

L'opérateur " % " de reste n'est intéressant que pour des calculs sur les entiers longs, courts, signés
ou non signés : il renvoie le reste de la division euclidienne de 2 entiers.

Exemples d’utilisation de l’opérateur de division selon les types des opérandes et du résultat :

Programme Java Résultat obtenu Commentaire


Int x=5, y ; X = 5, y = ??? Déclaration
float a , b = 5 ; b = 5 , a =??? declaration
y=x/2; y=2 //type int int x et int 2

résultat : int
y=b/2; erreur de conversion conversion automatique impossible
(float b --> int y)
y = b / 2.0 ; erreur de conversion conversion automatique impossible
(float b --> int y)
a=b/2; a = 2.5 // type float float b et int 2
résultat : float
a=x/2; a = 2.0 // type float int x et int 2
résultat : int
conversion automatique int 2 -->
float 2.0
a = x / 2f ; a = 2.5 // type float int x et float 2f
résultat : float

Pour l'instruction précédente " y = b / 2 " engendrant une erreur de conversion voici deux
corrections possibles utilisant le transtypage :

y = (int)b / 2 ; // b est converti en int avant la division qui s'effectue sur deux int.
y = (int)(b / 2) ; // c'est le résultat de la division qui est converti en int.

Vous aimerez peut-être aussi