ch1 2
ch1 2
ch1 2
Langage JAVA
1
Chapitre 1 :
Introduction Générale
1. Fondements de base
3
1.1. La programmation classique
Principe:
Programmes = Algorithmes + Structures de données
5
Classe : un modèle d’objets (type de données et
traitements)
Classe = Attributs Membres + Méthodes Membres
Objet : instance de classe, ayant ses propres valeurs de
données.
Encapsulation :
rassembler les données et les traitements au sein d'une
structure unique (entité)
autoriser l'accès aux données par les méthodes proposés.
Héritage :
définir une nouvelle classe à partir d’une classe existante.
La classe dérivée comporte les même propriétés de la classe de
base, auxquelles s’ajoutent des propriétés (méthodes et/ou
attributs) spécifiques.
6
☺ Avantages :
Intégrité et protection des données contenues
dans les entités de regroupement.
⇨ grâce à l’encapsulation
7
2. Le langage JAVA
8
2.1. Présentation générale de JAVA
JAVA : langage de programmation orientée objet pure,
9
Objectif Principal :
⇨ Langage portable
10
Pour développer en JAVA, il suffit d’installer le SDK
(Software Development Kit) correspondant .
⇨ Java Development Kit – JDK
SDK : ensemble d’outils et de bib de routines permettant
de développer des programmes pour un environnement
particulier
11
Site officiel :
http://www.oracle.com/technetwork/java/javase/downloads/in
dex.html
12
Exécution d'un programme JAVA :
Nécessité d’une machine virtuelle Java (MVJ)
Cette machine virtuelle va interpréter le code
compilé, code généré à partir des fichiers .java (et
donc des sources du programme).
(3) Exécution
14
Portabilité : avantage majeur du langage JAVA
Une fois le programme écrit en java, il fonctionnera
sur une grande variété de plateformes sans nécessiter
des modifications du code.
Seule la machine virtuelle qui interprète les fichiers
compilés subit des modifications.
17
2.3. Le JDK (JAVA Development Kit)
javac : compilateur de sources java (convertit le code source
fichier.java en fichier .class (contenant le bytecode Java) )
java : interpréteur de byte code
jar : l'archiveur, qui met sous forme d'un paquetage
unique l'ensemble des fichiers class en un fichier JAR,
appletviewer : interpréteur d'applet
javadoc : générateur de documentation (i.e., HTML) (génère
automatiquement de la documentation à partir des commentaires du code source)
jdb : débogueur
jre : java runtime environment : environnement
d’exécution Java
18
2.4. Exécution d’une application JAVA
Ecriture du code source JAVA :
Code sous forme de Fichier texte écrit selon la syntaxe
du langage et ayant l’extension ".java".
Compilation :
Les sources JAVA doivent être compilées afin de générer
le ByteCode. Les fichiers générés ont l'extension ".class".
Interprétation :
L’interprétation du Bytecode est faite par la MVJ
19
2.5.Structure générale d’une
application JAVA
Une application JAVA possède un point d'entrée unique
qui est la méthode (ou fonction) "main()" de prototype :
20
Exemple : Bonjour.java
22
2.7. Quelques références
Livres :
Le livre de Java premier langage, Anne Tasso, Eyrolles, 2016
Programmer en JAVA, Claude DELANNOY, éditions
Eyrolles, 2002
Comment programmer en JAVA, H.M. DEITEL & P.J.
DEITEL, éditions Prentice Hall, 1999
…
Sites Web :
http://www.oracle.com/technetwork/java/index.html
www.javaworld.com : Info sur Java
www.gamelan.com : applications, applets, packages, ...
www.blackdown.com : Java pour linux
23
Plan du Cours
Chapitre 1 : Introduction générale
Chapitre 2 : Les classes et les objets
Chapitre 3 : Les tableaux et les chaînes de caractères
Chapitre 4 : L'héritage et le polymorphisme
Chapitre 5 : Les classes abstraites et les interfaces
Chapitre 6 : Les exceptions
24
Chapitre 2 :
26
2. Organisation des classes en packages
Un package est considéré comme une bibliothèque de
classes. Il permet de regrouper un certain nombre de
classes
28
private / public : deux modificateurs d'accès précisant la
possibilité d'utilisation de la classe :
29
abstract / final : deux qualificateurs en relation avec le
concept d'héritage (voir chapitre 4)
extends : annonce l'héritage de la classe
NomSuperClasse (voir chapitre 4)
implements : annonce l'implémentation d'une ou
plusieurs interfaces pour a classe (voir chapitre 5)
30
3.1.Déclaration des attributs
[private/public/protected][static] [final]
type_attribut nom_attribut [= valeur];
31
private/ public / protected : des modificateurs d'accès à
l'attribut à partir d'autres classes :
33
3.2.Déclaration des méthodes
[private/public/protected]
[static][final/abstract] type_de_retour nom_méthode (liste paramètres )
{
// déclaration des variables locales;
[type_de_retour var_résultat;]
// instructions de la méthode
[return var_résultat;]
}
34
[private, public et protected] : des modificateurs d'accès
autorisant l'appel aux méthodes de la classe
35
Passage de paramètres
37
3.3. Constructeurs
Définition : méthode appelée lors de la création d’objets. Il porte le
même nom que celui de la classe
Rôle : initialiser les attributs de l'objet
Remarque :
En cas d’absence d’un constructeur implémenté, JAVA offre un
constructeur par défaut qui initialise les attributs de l'objet par des
valeurs par défaut (0 pour int, null pour les références aux objets,
…)
Le constructeur est toujours public et ne possède pas de type
(même pas void).
38
class Etudiant
{ private int matricule;
private String nom;
private int niveau;
public String couleur_chemise;
41
class Etudiant
{ private static int nbEtudiant = 0;
private int matricule;
private String nom;
private int niveau;
public String couleur_chemise;
public Etudiant()
{matricule = 12; nom= "Daniel"; niveau=1; couleur_chemise= "bleue";
nbEtudiant ++;}
public Etudiant(int m)
{matricule = m; nom="Patricia"; niveau=2; couleur_chemise= "bleue";
nbEtudiant++;}
42
public Etudiant(int m,String n)
{matricule = m; nom= n; niveau=2;couleur_chemise= "bleue";
nbEtudiant++; }
43
4.L’instanciation des objets
4.1. Référence d'un objet
Références d'objets : variables de type classe désignant des
objets à la manière des pointeurs en C (sans manipulation directe
d'adresse).
45
Un objet qui n'est référencé par aucune référence est détruit par
le ramasseur-miettes (Garbage Collector) qui s'exécute en
permanence.
Exemple :
public class TestEtudiant
{
public static void main(String [ ] args)
{
Etudiant e1;
e1 = new Etudiant(); // e1 une référence sur un objet
47
5.2.Manipulation des attributs
48
Les attributs d’objet : désignés selon la syntaxe suivante :
nomObjet.nomAttribut
49
class Etudiant
{ //déclaration des attributs membres
private static int nbEtudiant = 0; // attribut statique
private int matricule;
private String nom;
private int niveau;
//déclaration des méthodes membres
public Etudiant()
{matricule = 12; nom= "Daniel"; niveau=1; couleur_chemise=
"bleue"; nbEtudiant ++; }
public Etudiant(int m)
{matricule = m; nom= "Rami"; niveau=2; couleur_chemise=
"bleue"; nbEtudiant++;
}
50
} //fin de classe
5.3.Invocation des méthodes
51
Les méthodes d’objets : désignées selon la syntaxe suivante :
nomObjet.nomMéthode( ….. )
52
6. Référence sur l'objet courant ″this″″
this : une référence sur l'objet courant
53
Exemple :
class Etudiant
{ private int matricule;
public String couleur_chemise;
…
public Etudiant (int matricule, String couleur_chemise)
//paramètres portant le même nom que les attributs
{
this.matricule = matricule;
this.couleur_chemise = couleur_chemise;
}
…
}
54
7. Détermination de la nature d'un objet
Exemple :
…
if (e1 instanceof Etudiant)
// expression évaluée à vrai ou faux
…
55
8. Objets Membres
Les attributs d’objets peuvent être :
Simples
Des objets composés de plusieurs attributs
56
Création et instanciation d’attributs de type objets
57
class Stage
{ //déclaration des attributs
private String sujet;
private String nom_entreprise;
private String duree;
//Implémentation des méthodes
public Stage(String sj, String ne, String d)
{sujet = sj; nom_entreprise = ne; duree= d}
public Etudiant()
{ matricule =12; nom= "Sam"; niveau=1; couleur_chemise = "bleue";
st = new Stage ("Sujet 1", "EDF", "1 mois");}
// Création et initialisation d’attribut
59
public void changerStage (Stage nst)
{ st = nst;} //réinitialisation par simple affectation
} //Fin de classe
60
public class Exemple // Hypothèse : les 3 classes dans un même package
{
public static void main(String [ ] arg)
{ Etudiant e1, e2, e3;
Stage st1;
62
class Etudiant
{
private int matricule;
…
public int getMatricule() {return matricule;}
class Exemple
{ public static void main (String arg[])
{
Etudiant e = new Etudiant();
e.setMatricule(99);
System.out.println(″matricule =″+e.getMatricule());
}
} 63
Généralement, on décrit dans chaque classe une méthode
ayant le prototype suivant :
public String toString()
64
class Etudiant
{
private int matricule;
public String nom;
…
public String toString()
{
String s;
s=″La matricule de l’étudiant est :″+matricule+″ Son nom est :″
+ nom;
return s;
}
}
65
class Exemple
{
public static void main(String []arg)
{
String s ;
Etudiant e = new Etudiant ();
e.setMatricule(114);
e.setNom(″Ali″);
s = e.toString();
System.out.println(s); //on peut s’en passer d’utiliser s
}
}
66