Intro Java
Intro Java
Intro Java
IFNTI Sokodé S3
octobre 2023
1 Généralités
POO
Histoire
Caractéristiques
Compilation
Syntaxe
2 Installation
Environnement
Installation de Java
3 Le langage Java
Introduction
Types
Variables
Structures de contrôle
Les opérations d’entrée sortie
Classes Java
Attributs et méthodes de classes Java
Compilation et exécution
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 2 / 41
Généralités Installation Le langage Java
Généralités
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 3 / 41
Généralités Installation Le langage Java
POO
Définitions POO
Définitions Wikipédia
“La programmation orientée objet [...] est un paradigme de programmation
informatique. Elle consiste en la définition et l’interaction de briques logicielles
appelées objets ; un objet représente un concept, une idée ou toute entité du
monde physique, comme une voiture, une personne ou encore une page d’un
livre.”
Sous-paradigmes
Programmation orientée prototype
Programmation orientée classe
Programmation orientée composant
Exemples de langages
Java, C#, Objective C, Python, Ruby, C++, Ada, PHP.
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 4 / 41
Généralités Installation Le langage Java
Histoire
Définition
Wikipédia
“Java est un langage de programmation de haut niveau orienté objet créé par
James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le
soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté
officiellement le 23 mai 1995 au SunWorld.”
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 5 / 41
Généralités Installation Le langage Java
Histoire
Historique
Origines
1990 : Développeurs de Sun insatisfaits du langage C++ (raisons pour
l’instant pas de votre niveau)
1992 : Création du langage Oak (chêne)
1994 : Changement de nom en Java (raison officielle : “Oak” était déjà
une marque de cartes vidéo ; raison officieuse : "Les développeurs
boivent beaucoup de café")
23 mai 1995 : Lancement officiel
1996 : Java Development Kit (JDK) 1.0
1997 : JDK 1.1 (amélioration de la syntaxe et des exceptions, refonte de
l’interface graphique (listener))
1998 : Java 2 (apport du multimédia, une nouvelle interface graphique
incorporée : Swing)
2004 : Java 5 (ajout de fonctionnalités : types génériques, autoboxing,
types énumérés, nouveau look, . . .)
2009 : Sun est racheté par Oracle
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 6 / 41
Généralités Installation Le langage Java
Caractéristiques
Les caractéristiques
Wikipédia
”Le langage Java a pour particularité d’être compilé vers un code intermédiaire
formé de bytecodes qui va être interprèté dans une machine virtuelle Java
appelée en anglais Java Virtual Machine (JVM) en faisant abstraction du
système d’exploitation.”
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 7 / 41
Généralités Installation Le langage Java
Compilation
Compilation
Wikipédia
la compilation est la transformation d’un code source en un code exécutable.
Elle est réalisée par un programme appelé compilateur. “En informatique, la
compilation est la transformation d’un code source en un code exécutable. Elle
est réalisée par un programme appelé compilateur.
Un compilateur est un programme qui transforme un code source en un code
exécutable. Généralement, le code source est écrit dans un langage de
programmation (le langage source), il est de haut niveau d’abstraction, et
facilement compréhensible par l’humain. Le code exécutable est généralement
écrit en langage de plus bas niveau (appelé langage cible), par exemple un
langage d’assemblage ou langage machine, afin de créer un programme
exécutable par une machine.”
Wikipédia
“Le bytecode (terme anglais signifiant ≪ code en bytes ≫) est le code binaire
généré à partir du code source. ou langage machine, afin de créer un
programme exécutable par une machine.”
Compilation
Portabilité
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 9 / 41
Généralités Installation Le langage Java
Syntaxe
Syntaxe à respecter
Exemple
i f ( v a r i a b l e == 2 ) {
System . o u t . p r i n t l n ( ” B o n j o u r ” ) ; //Un c o m m e n t a i r e
}
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 10 / 41
Généralités Installation Le langage Java
Installation
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 11 / 41
Généralités Installation Le langage Java
Environnement
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 12 / 41
Généralités Installation Le langage Java
Installation de Java
Installation
Installation
sudo apt-get install default-jdk.
sudo apt-get install default-jre.
java -version.
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 13 / 41
Généralités Installation Le langage Java
Le langage Java
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 14 / 41
Généralités Installation Le langage Java
Introduction
Généralités
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 15 / 41
Généralités Installation Le langage Java
Types
Classes Wrapper
Tous les types simples ont leur équivalent complexe → classes “wrapper”.
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 16 / 41
Généralités Installation Le langage Java
Types
Règles générales
Par convention, les noms de types simples commencent par une minuscule, et
les noms de types complexes commencent par une majuscule.
Un fichier de classe commence donc par une majuscule et se termine par une
extension .java
Une seule classe publique par fichier (voir spécificateurs d’accès)
API
L’API a fournit une bibliothèque très importante de classes
(http://java.oracle.com).
a. Application Programming Interface
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 17 / 41
Généralités Installation Le langage Java
Variables
Variables en Java
En Java, une variable est un morceau de mémoire qui a un type, on appelle ce
type compile-time type.
Exemples de déclarations
S t r i n g nom ;
f l o a t largeur , longueur , hauteur ;
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 18 / 41
Généralités Installation Le langage Java
Variables
Opérateurs
Opérateurs arithmétiques
+ - * / %
Opérateurs d’affectation
= += -= *= /= %= ++ --
Opérateurs de comparaison
< > <= >= == !=
Opérateurs logiques
! (non) && (et) || (ou) ?
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 19 / 41
Généralités Installation Le langage Java
Variables
Comparaison d’objets
Pour la comparaison d’objets, Java fournit la méthode equals.
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 20 / 41
Généralités Installation Le langage Java
Variables
Exemples
1 i n t a =1 , b =1;
2 System . o u t . p r i n t l n ( a==b ) ; // t r u e
3
4 I n t e g e r i 1=new I n t e g e r ( 1 ) , i 2=new I n t e g e r ( 1 ) ;
5 System . o u t . p r i n t l n ( i 1==i 2 ) ; // f a l s e
6 System . o u t . p r i n t l n ( i 1 . e q u a l s ( i 2 ) ) ; // t r u e
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 21 / 41
Généralités Installation Le langage Java
Variables
Remarques
L’attribut length permet d’obtenir la taille du tableau
La classe Arrays permet la manipulation de tableaux plus complexes à
l’aide de méthodes de classe (tri, copie, . . .)
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 22 / 41
Généralités Installation Le langage Java
Variables
1 i n t [ ] t a b 1 = new i n t [ 4 ] ;
2
3 i n t [ ] [ ] t a b 2 = new i n t [ 2 ] [ 3 ] ;
4
5 i n t [ ] [ ] t a b 3 = new i n t [ 4 ] [ ] ;
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 23 / 41
Généralités Installation Le langage Java
Structures de contrôle
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 24 / 41
Généralités Installation Le langage Java
Structures de contrôle
Opérateur ternaire ?
Cet opérateur utilise la valeur booléenne de la première expression pour choisir
laquelle des 2 expressions suivantes sera évaluée. Syntaxe :
<e x p r B o o l é enne> ? <e x p r S i V r a i > : <e x p r S i F a u x >;
Exemple
int a = 3;
i f ( a == 3 ) {
System . o u t . p r i n t l n ( ” l a v a l e u r de a e s t é g a l à 3 ” ) ;
} else {
System . o u t . p r i n t l n ( ” l a v a l e u r de a n ’ e s t p a s 3 ” ) ;
}
Résultat à l’exécution
la valeur de a est égal à 3
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 25 / 41
Généralités Installation Le langage Java
Structures de contrôle
Remarques
<initialisation> donne la valeur initiale de la variable d’itération. La
déclaration est possible à cet endroit là.
<exprBool> donne la condition de continuation de la boucle.
<exprPas> donne le pas (et est obligatoire).
Exemple
f o r ( i n t i =0 ; i <10 ; i ++) {
System . o u t . p r i n t l n ( i ) ;
}
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 26 / 41
Généralités Installation Le langage Java
Structures de contrôle
w h i l e ( e x p r B o o l é enne ) {
<i n s t r u c t i o n O u B l o c >
}
do {
<i n s t r u c t i o n O u B l o c >
} w h i l e (< e x p r B o o l é enne >);
Attention
Le do...while n’est pas l’équivalent du répéter...jusqu’à ce que !
L’expression booléenne détermine la condition de continuation et non la
condition d’arrêt !
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 27 / 41
Généralités Installation Le langage Java
1 import java . io . ∗ ;
2
3 public class EntreeSortie {
4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
5 BufferedReader console ;
6 c o n s o l e = new B u f f e r e d R e a d e r ( new I n p u t S t r e a m R e a d e r ( System . i n ) ) ;
7 System . o u t . p r i n t l n ( ” Quel e s t v o t r e nom : ”);
8 S t r i n g name = n u l l ;
9 try {
10 name = c o n s o l e . r e a d L i n e ( ) ;
11 } c a t c h ( I O E x c e p t i o n e ){
12 name = ”<” + e + ”>” ;
13 }
14 System . o u t . p r i n t l n ( ” B o n j o u r ” + name ) ;
15 }
16 }
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 29 / 41
Généralités Installation Le langage Java
Les opérations
Pour lire et écrire les flux de caractères il est important d’utiliser les classes
Reader et Writer.Il existe de nombreuses sous-classes pour traiter les flux de
caractères.
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 30 / 41
Généralités Installation Le langage Java
Classes Java
Syntaxe
Une classe est un ensemble de données et de fonctions regroupées dans une
même entité.
Remarque
Les noms de classe respectent la règle du CamelCase.
Une classe comporte sa déclaration, des variables et les définitions de ses
méthodes.
Pour accéder à une classe il faut en déclarer une instance de classe ou objet.
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 31 / 41
Généralités Installation Le langage Java
Classes Java
Syntaxe
1 c l a s s <NomClasse> {
2 // a t t r i b u t s
3 <a c c e s 1 > <t y p e 1> <a t t r i b u t 1 >, . . . , <a t t r i b u t n >=<i n i t 1 >;
4 <a c c e s 2 > <t y p e 2> <a t t r i b u t 2 >=<i n i t 2 >, . . . , <a t t r i b u t n >;
5 ...
6
7 // c o n s t r u c t e u r s
8 <a c c e s 3 > <NomClasse >([< t y p e 1> <param1 >, <t y p e 2> <param2 >, . . . ] ) {
9 // i n s t r u c t i o n s
10 }
11 ...
12
13 // mé t h o d e s
14 <a c c e s 4 > <t y p e> <nomMethode >([< t y p e 1> <param1 >, . . . ] ) {
15 // i n s t r u c t i o n s
16 }
17 ...
18 }
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 32 / 41
Généralités Installation Le langage Java
Classes Java
Exemple de classe
fichier Personne.java
1 p u b l i c c l a s s Chien {
2
3 // L i s t e d e s a t t r i b u t s de l a c l a s s e
4 String couleur = ” Noir ” ;
5 int poids ;
6
7 // L i s t e d e s mé t h o d e s de l a c l a s s e
8 i n t poid (){
9 return 20;
10 }
11 }
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 33 / 41
Généralités Installation Le langage Java
Classes Java
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 34 / 41
Généralités Installation Le langage Java
Classes Java
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 35 / 41
Généralités Installation Le langage Java
Méthodes
Syntaxe pour la déclaration
<a c c e s > <t y p e R e t o u r > <nomMethode >([ param è t r e s ] ) {...}
Exemple
p u b l i c S t r i n g c o n c a t e n e r ( S t r i n g s1 , S t r i n g s 2 ) {
r e t u r n s1 + s2 ;
}
Objet
Instanciation d’une classe
Pour instancier un objet d’une classe, on fait un appel explicite à l’opérateur
new en précisant la classe à instancier.
Un objet est donc une instance d’une classe.
Exemples
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 37 / 41
Généralités Installation Le langage Java
Un constructeur
Un constructeur
En Java, vous pouvez écrire au sein d’une classe des constructeurs, prenant
éventuellement des paramètres d’entrée, et initialisant l’objet lors de sa
création. Le constructeur est alors automatiquement appelé par l’opérateur new
quand vous instanciez un nouvel objet de la classe. Le constructeur d’une classe
ressemble à une méthode, sans sortie, sans type, et qui a le même nom que la
classe.
Exemple
Prenons un constructeur d’un triangle prenant en entrées la base et la hauteur.
1 public class Triangle {
2 // C o n s t r u c t e u r de l a c l a s s e T r i a n g l e
3 T r i a n g l e ( double h , double b ){
4 hauteur = h ;
5 base = b ;
6 }
7 }
Avec le constructeur au-dessus, il est possible de créer un objet et de l’initialiser
de manière très compacte : DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023
Amoudiya SIBITTI & Ichaou SAHM 38 / 41
Généralités Installation Le langage Java
Compilation et exécution
Méthode main
Caractéristiques
Toute application Java doit avoir une méthode main dans la classe
principale servant de point d’entrée. L’exécution d’une application Java
commence par l’appel de la méthode main.
La déclaration de cette méthode est toujours la même. Elle prend un
paramètre en entrée, un Tableau de Chaı̂ne de caractères (String[]) qui
récupère les paramètres donnés dans le terminal lors de l’exécution du
programme. De plus, elle doit être public static et ne doit rien
retourner (void).
Chaque classe Java peut avoir sa méthode main permettant de la tester.
Cette classe devient ainsi exécutable.
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { . . . }
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 39 / 41
Généralités Installation Le langage Java
Compilation et exécution
Compilation
Avant d’exécuter un programme Java, les fichiers sources sont compilés dans
une forme intermédiaire : le Java Byte Code d’extension .class (pouvant
être placé dans un dossier classes précisé grâce à l’option -d). Pour compiler,
on se place dans le répertoire du package et on exécute la commande :
j a v a c [−d c l a s s e s ] <chemin >/<N o m F i c h i e r >. j a v a
Exécution
La Java Virtual Machine (JVM) commence l’exécution en appelant la
méthode main de la classe spécifiée. Pour lancer l’exécution, la commande à
exécuter est :
j a v a [− c l a s s p a t h c l a s s e s ] <nomPackage >.<N o m F i c h i e r >
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 40 / 41
Généralités Installation Le langage Java
Compilation et exécution
Exemple
Exemple.java
1 p u b l i c c l a s s Exemple {
2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
3 System . o u t . p r i n t l n ( ” 42 e s t l a r é p o n s e ” ) ;
4 }
5 }
j a v a c Exemple . j a v a
Exécution
j a v a Exemple
Amoudiya SIBITTI & Ichaou SAHM DAP : Introduction au langage Java - IFNTI Sokodé S3 - octobre 2023 41 / 41