Vous êtes sur la page 1sur 24

UNIVERSITE INUKA

DEPARTEMENT DES SCIENCES INFORMATIQUES

2e Année Licence(L2)
Cours JAVA II, Session II
Professeur : Jaures PIERRE

Année Académique 2019-2020


Chapitre 1

23/10/2020
POO, OBJETS ET CLASSES

 POO c’est quoi ?


 Notion de classe
 Définition
 Importance
 Déclaration
 Exemple
 Membres d’une classe
 Attributs ou champs
 Méthodes
 Notion de constructeur 23/10/2020 3

 Notion de destructeur
POO, OBJETS ET CLASSES
 Dans le monde de la programmation, deux styles fondamentaux (ou paradigmes) sont mis en
avant, à savoir, la programmation procédurale et la programmation orientée objet.
Programmation procédurale
 Dans la programmation procédurale (ou fonctionnelle), un programme est divisé en plusieurs
étapes qui s’exécutent d'une manière séquentielle. Durant ces étapes, l'ensemble des variables
mises en jeu sont modifiées par le biais de procédures ou fonctions qui se succèdent.

Malgré la simplicité que l'on peut toucher lors de la programmation procédurale, celle ci a
plusieurs inconvénients que je vais résumer dans les points suivants:
 Entretien du programme complexe: puisque le programme s’exécute séquentiellement du début
à la fin, le fait de vouloir modifier son comportement (même légèrement) revient à faire des
modifications (parfois majeures) dans plusieurs endroits.
POO, OBJETS ET CLASSES

 Avancement lent dans les grandes applications: le fait de coder de grandes applications à l'aide d'un
langage de programmation procédurale requière beaucoup de temps. Chose qui n'est pas toujours à
portée de main lorsqu'on est face à des clients exigeants.
 Travail en groupe non favorable: les grands projets sont généralement réalisés par une équipe constituée
de plusieurs programmeurs, chacun s'attribut une tâche (ou une partie du projet). Le fait de vouloir
reconstituer l'application finale n'est pas toujours chose aisée, ce qui demande généralement de repasser
en vue certains bouts de code.

Les langages de programmation procédurale les plus connus sont: C, Pascal, Perl, PHP4, PL/SQL...
POO, OBJETS ET CLASSES

 Programmation orientée objet (POO)


 Vers les années 1970, le concept de l'objet est né. La programmation orientée objet se base sur la
manipulation d'entités appelées objets. Les objets sont plus concrets et plus perceptibles par les
humains. Ils peuvent représenter des entités physiques du quotidien comme une personne, une
maison, un arbre...

Un objet de la POO possède une structure interne qui définit ses propriétés et ses propres
comportements, et peut interagir avec d'autres objets. Si la programmation orientée objet gagne
du terrain c'est principalement grâce à ses nombreux avantages qu'on peut résumer dans ces
points:

Plus intuitif: La POO permet de manipuler des objets qui peuvent interagir entre eux. Ce concept
est plus proche du monde physique où nous vivons.
POO, OBJETS ET CLASSES

 Plus organisé: Les objets étant indépendants les uns des autres (même s'ils peuvent interagir
entre eux), le code source devient plus organisé et plus claire.
 Plus évolutif: Un code organisé est plus facile à maintenir.
 Code réutilisable: En POO le code peut être divisé en modules plus faciles à réutiliser, non
seulement dans le projet courant, mais dans d'autres projets.
 Favorise le travail en équipe: A l'inverse de la programmation procédurale, la POO favorise le
travail en équipe en découpant les parties du projet qui sont faciles à regrouper après.
Au niveau le plus simple, la POO se concentre sur les objets qu'un programmeur souhaite modifier
plutôt que sur les actions nécessaires pour effectuer ce changement. Cela facilite l'exécution
d'analyses de code par les programmeurs et ces objets sont réutilisables dans d'autres projets.
Les langages de programmation orientés objet les plus connus sont: C++, Java, PHP5 (et PHP7), C#,
Ruby, Python...
OBJETS
OBJET

En parlant de la Programmation orientée Objet, une question pertinente se pose toujours, que représente un
objet dans ce cas?
 La programmation orientée objet est plus naturelle donc plus intuitive. Si c'est le cas, c'est parce qu’elle
utilise des entités appelées objets. Un objet possède sa propre structure interne qui définit ses propriétés
et son comportement. Si on compare avec le monde réel, les objets sont partout autour de nous. Une
personne est un objet, une voiture en est un autre, une maison, une école une télé, un ballon... tous sont
des objets. Prenons l'objet "voiture".
Bien qu'il en existe plusieurs modèles, le fait d'évoquer le mot "voiture" fait penser à des points comme:
couleur
 options
 puissance du moteur
 vitesse
 nombre de rapports de vitesse
CLASSES
Les objets de la POO doivent être créés d'abord pour pouvoir être manipulés après.
 C'est la classe qui se charge de donner vie aux objets.
Une classe est une structure cohérente de propriétés (attributs) et de comportements (méthodes).
C'est elle qui contient la définition des objets qui vont être créés après. En général on considère
une classe comme un moule à objets. Avec un seul moule on peut créer autant d'objets que l'on
souhaite.
 Techniquement parlant, une classe est une structure qui contient des attributs (appelés aussi
variables membres) et des méthodes (connus également par fonctions membres). Les méthodes
agissent sur les attributs de cette structure.
Par exemple, le fait d’accélérer augmente la vitesse de la voiture.
L'instanciation d'une classe
L'instanciation est le fait de créer une instance. Pour être précis, on parle d'une instance de classe.
La classe étant le moule qui sert à fabriquer les objets, alors chaque objet créé correspond à une
instance de la classe qui lui a donné vie.
REGLES DE NOMMAGES DES CLASSES

 D’apres les recommandations de SUN, les noms des classes doivent respectées certaines règles de
nommages afin de faciliter la compréhension par d’autres personnes lorsqu’ils sont définis et du
coup rester dans la ligne tracée pour garder le bons principes de la programmation. En Java la
notation Pascal Case: 1ère lettre de chaque mot en Majuscule.
 Mélange de minuscule, majuscule avec la première lettre de chaque mot en majuscule
 Donner des noms simples et descriptifs
 Eviter les acronymes : hormis ceux commum (XML, URL, HTML, ...)
 De plus, d'une manière générale : N'utiliser que les lettres [a-z] et [A-Z] et [0-9] :
 Ne pas utiliser de tiret '-', d'underscore '_', ou d'autres caractères ($, *, accents, ...).
DÉCLARATION

La classe renferme l'ensemble des propriétés et de méthodes qui servent à définir l'identité de l'objet qui en
découlera (l'instance de classe).
Supposons que l'on souhaite créer une classe "voiture". Celle ci aura certaines propriétés (attributs) comme:
couleur, puissance et vitesse. Elle aura aussi des méthodes comme accélérer et ralentir. Notre classe "voiture"
renfermera tous ces éléments (membres).
Pour créer la classe "voiture" on écrira le code suivant:
class Voiture{
……………………
}
le mot clé class(en Minuscule) sert à indiquer que l'on veut créer une classe. Il est suivi du nom de celle ci,
Voiture dans ce cas, suivi de deux accolades (ouvrante et fermante) qui contiendront la déclaration des
éléments membres (attributs et méthodes).
MEMBRES D’UNE CLASSE

Un objet est caractérisé par des attributs et des méthodes:


 Déclaration des attributs
Les attributs sont les variables membres(on les appelle aussi variables d’instances) de la classe. Ils constituent les propriétés ou les
caractéristiques de l'objet (l'instance de classe) qui en sera né.
Pour déclarer un attribut(ou champ), il faut se positionner entre les accolades ouvrantes et fermantes de la classe puis utiliser les
notations suivantes:
[portée] type nomVariable;
Exemple:
class Voiture{
String marque;
int nbVitesse;
} .les variables d’instances ou attributs utilisent le Camel Case, première lettre en du premier mot Minuscule et
les autres mots commenceront par une lettre majuscule. Pour la portée des variables, on en revient après.
MEMBRES D’UNE CLASSE

 Déclaration des méthodes ou fonctions membres


Les méthodes sont des fonctions membres. Ce sont elles qui se chargent de manipuler les attributs et dotent ainsi la classe de son
comportement. Pour déclarer une méthode, il faut se positionner entre les accolades ouvrantes et fermantes de la classe puis
utiliser la formule générale suivante:
[portée] typeMethode nomMethode([typeparametre][nomParametre]){
// Lignes d’instructions a executer;
}
Exemple:
class Voiture{
String marque;
void deplacerVoiture(){
// Instructions…. }
} .les méthodes ou fonctions membres utilisent le Camel Case, première lettre en du premier mot Minuscule et les
autres mots commenceront par une lettre majuscule. Pour la portée des méthodes, on en revient après.
CONSTRUCTEUR

Le constructeur d'une classe est une méthode publique (dans la plupart des cas) qui est appelée
automatiquement au moment de l'instanciation de la classe. Elle sert généralement à initialiser les attributs de
la classe et de fournir à l'objet créé tout ce dont il a besoin pour pouvoir fonctionner. Cette opération
d'initialisation est connue sous le nom d'hydratation. Comme son nom l’indique, le constructeur est la pour
aider a constructeur des objets.
Le constructeur est une méthode qui a le même nom que la classe.
Le constructeur n’a pas de valeur de retour même pas void.
Un constructeur peut être surchargé
En Java, chaque classe contient un constructeur par défaut, qui est le constructeur sans paramètre. Le
constructeur sans paramètre ne peut pas être définie explicitement si l’on pas d’autres définies dans la classe.
CONSTRUCTEUR
Prenons l’exemple de la classe Voiture, si l’on veut créer un constructeur pour la classe, on doit procéder
comme suit:

Class Voiture{
public Voiture(){
// instructions……
}
public Voiture(String marque,String couleur, int nbCylindre){
// instructions……
}
}
DESTRUCTEUR
Le destructeur est une méthode spéciale qui sera appelée (si elle est redéfinie dans la classe) lorsque l'objet
sera nettoyé de la mémoire par le garbage collector. Le garbage collector est un "ramasse-miettes" chargé de
faciliter la tâche des programmeurs en libérant les ressources prises en mémoire automatiquement. Cette
méthode n'est pas forcément appelée lorsque vous supprimez l'objet.

Pour utiliser le destructeur vous devez redéfinir une méthode appelée finalize() publique et qui ne renvoie
rien. On peut donc avoir le code suivant :
DESTRUCTEUR

public class Test{


private int zero;
private boolean condition;

public Test(){
zero = 0;
condition = false;
System.out.println("L'objet a été créé");
}
public void finalize(){
System.out.println("Objet nettoyé de la mémoire");
}
}
PACKAGES

 Introduction
 A quoi servent-ils ?
 Règle de nommage des packages.
 Création
 Importation des classes d’un Package
 Exercices d’application

23/10/2020 19
PACKAGES
o Un package est une unité (un fichier) de regroupement de classes et d’interfaces utilises en Java
afin de permettre mieux structurer ces derniers. Les packages sont similaires aux bibliothèques
du langage C/C++.
o Les paquetages offrent un niveau de modularité supplémentaire pour:
 réunir des classes et d’interfaces suivant un centre d’intérêt commun
 la protection des attributs et des méthodes
Ils ont a la fois un aspect logique et physique.

o Logique: Par l’utilisation de leur nom dans le code source de nos programmes Java.
o Physique: Parce qu’en réalité, une arborescence de répertoire est crée sur votre système d’exploitation et
que vous pouvez la visualiser. 23/10/2020 20
REGLES DE NOMMAGES

Le nom d'un package doit respecter les conventions suivantes :

o Tout en minuscule.
o Utiliser seulement [a-z], [0-9] et le point '.': Ne pas utiliser de tiret '-', d'underscore '_', d'espace, ou
d'autres caractères ($, *, accents, ...).
o La convention de Sun indique que tout package doit avoir comme root un des packages suivant: com,
edu, gov, mil, net, org ou les deux lettres identifiants un pays (ISO Standard 3166, 1981).

Je pense que les règles 1 et 2 doivent être suivies sans concessions. De toute manière, la plupart de ces règles
sont obligatoires:
o com.sun.eng
o com.apple.quicktime.v2
o edu.cmu.cs.bovik.cheese
23/10/2020 21
CREATION

o Pour créer un package en Java, on utilise le mot clé package en minuscule suivi du nom du package.
o La création du package doit être la ligne de code de votre programme.
o Exemple, création d’un package pour un projet de développement pour une école.

o package ht.chcl.projet; // première ligne de données.


o // Automatiquement une arborescence de répertoire sera créée sur votre ordinateur dans l’emplacement
de votre projet.

23/10/2020 22
IMPORTATION DES CLASSES D’UN
PACKAGE

o Pour pouvoir désigner une classe d'un autre paquetage par son nom terminal, il faut l’importer:
l’importation d’une classe se fait a l’aide du mot clé import.
o S’il n’y a pas de package crée dans la classe, le mot clé import doit être la première ligne de données sinon
les import doivent être placées après la création du package.
o On peut importer plusieurs classes(plusieurs import) dans une autre classe mais, on ne peut pas créer
plusieurs packages dans une même classe.
o Pour importer une classe, on doit procéder comme suit:
o import nompackage.NomClasse; exemple:
o import java.util.Scanner; // import, le mot cle permettant d’importer la classe, java.util, le nom du package
et Scanner, le nom de la classe.
o Pour importer toutes les classes d’un package, on utilise une etoite a la place du nom de la classe.
o Exemple: import java.util.*; // importe toutes les classes du package java.util.
A LA PROCHAINE !!!

Vous aimerez peut-être aussi