JAVA ET LA PROGRAMMATION
OBJET
F.Guerouate
EST-Salé
POO : mais pourquoi ?
La Programmation Orientée Objets (POO) a pour but
final de faciliter le débogage, la maintenance et la mise à
jour d'applications complexes.
C++, Java et Scala sont des exemples de langages
orientés objets. La POO est une idée récente et s'oppose,
par définition, à la programmation procédurale (Fortran,
Ada, C, etc.)
La POO en Java
Java est un langage contraint à la POO. Tout, en Java, est
considéré comme un objet.
Par exemple,
dès que vous créez une chaîne de caractères, vous créez
un objet :
String facile = new String("Trop facile");
Donc, sans vous en apercevoir, vous avez déjà fait de la
POO avec Java
Chapitre 1:
Le Concept orienté objet
Classes, Objets et Variables
Notion de classes et d’objets
Le langage Java et ses différentes versions
Le premier programme
Variables et implémentation des objets
Les objets sont responsables de leur état
NOTION DE CLASSES ET D’OBJETS
Une classe est une abstraction qui sert à décrire des
modèles.
Une classe est définie par son nom, ses propriétés et ses
fonctions.
A chaque classe corresponds des objets qui en sont les
réalisation informatique concrètes.
Les objets sont des instances de la classe: ils sont
structurés par les propriétés définissant la classe, et ils
ont la capacité d’exécuter les fonctions définies au sein
de la classe.
1-1: UNE CLASSE ET SES OBJETS
Personne
Nom
propriétés annee-_naissance
salaire
Personne(n,a,s)
fonctions affiche()
calcul_age()
Toute objet de la classe Personne est structuré par les trois propriétés
précédentes et qu’il a à disposition les deux fonctions indiquées.
P1 et P2 sont des personnes particulières, instances de la
classe Personne.
Objet P1 nom=« ali », annee_naissance=1980 et pour
salaire=5000 Dh
Objet P2 nom=« sara », annee_naissance=1986 et
pour salaire=7000 Dh
Les objets P1 et P2 peuvent exécuter les fonctions
affiche() et calcul_age() qui sont définies pour toute
instance de la classe Personne.
Résumé: chaque objet d’une classe (c’est-à-dire chaque instance)
est structuré par les propriétés définies au sein de sa classe
Chacune des propriétés d’un objet a une valeur, et l’ensemble de ses
valeurs exprime l’état de l’objet.
Chaque objet peut exécuter les fonctions définies par la classe:
l’ensemble de ces possibilités traduit alors son comportement.
L’ensemble de ses possibilités traduit alors son
comportement. État et comportement caractérisent
chaque objet d’une classe.
En Java, les propriétés d’une classe et des objets
correspondants sont appelées variables d’instances ou
attributs ou encore champs; les fonctions sont appelées
méthodes.
LE LANGAGE JAVA ET SA VERSION 5
Le langage Java est un langage Objet à part entière.
2-1- LES CARACTÉRISTIQUES DU
LANGAGE
Le langage Java a été conçu à partir des langages Objets
SmallTalk et C++. Ses caractéristiques sont les
suivantes:
À l’instar du C++, Java permet de mettre en œuvre tous les
fondements de l’approche objet: implémentation d’objets comme
instances de classe, communication entre objets par envois de
message, héritage des propriétés et des méthodes.
Java est structuré uniquement par la définition des classes.
Contrairement au C++ -qui autorise l’écriture du code des fonctions en
dehors des classes (le C++ est un langage hybride)-, Java oblige le
programmeur à définir les méthodes comme partie intrinsèque des
classes. De ce fait, c’est la définition des classes avec leurs propriétés et
leurs méthodes qui conduit la conception de toutes les applications
objets en programmation Java.
2-1- LES CARACTÉRISTIQUES DU
LANGAGE
Java est un langage fortement typé. Il existe deux grandes
familles de types: les types ordinaires, comme byte, short et int,
et le type « classe »: dans ce cas une variable à pour valeur
l’adresse de l’objet.
Java formule les envois de message par les appels de
fonction. Écrire, par exemple, p1.calcul_age() indique qu’il
est demandé à p1 d’exécuter la méthode calcul_age() déclarée
dans sa classe. La liaison entre la variable p1 et la méthode est
faite au moment de l’exécution, car en Java les liaisons sont
dynamique.
2-1- LES CARACTÉRISTIQUES DU
LANGAGE
la syntaxe du langage Java est très proche de celle du langage C.
mais il y a tous les additifs nécessaires à la bonne formulation d’un
programme Objet, comme la déclaration des classes et l’utilisation
de « modificateurs » qui détermine le niveau d’accessibilité des
éléments du programme. Les trois principaux modificateurs sont:
private, protected et public.
2-2- LA STRUCTURE D’UN PROGRAMME
JAVA
import …; //mettre le nom de la classes prédéfinies à utiliser
class … //mettre le nom de la classe
{… //mettre les déclarations des variables d’instances
…
… //mettre le code des méthodes
} //fin de la déclaration de la classe
//s’il y a d’autres classes, les ajouter en suivant ce modèle
Public class … //mettre comme nom de classe le nom du fichier texte
{public static void main(String args[]) //écriture obligatoire
{ … //ici prend la place le code de la fonction main
…
}
}
3- LE PREMIER PROGRAMME
Nous vous proposons d’écrire un programme qui définit
la classe Personne.
Les objets à implémenter sont les suivants:
p1 et p2 comme indiqué dans le cours
PERSON1.JAVA – LA CLASSE PERSONNE
import java.io.*
class Personne
{
private string nom;
private int annee_naissance;
private int salaire;
public Personne(String n,int a,int s)
{nom=n;
annee_naissance=a;
salaire=s;
}
}
PERSON1.JAVA – LA CLASSE PERSONNE
public void affiche()
{
System.out.println(nom+’ ’ ‘‘+annee_naissance+ ’’
‘’+salaire);
}
public void calcul_age()
{
int age=2022- annee_naissance;
System.out.println(’’ age= ‘‘+age);
}
}
PERSON1.JAVA – LA CLASSE PERSONNE
public class person1
{
public static void main(String args[])
{
Personne P1=new Personne(« ali»,1980,5000);
Personne P2=new Personne(«sara»,1986,7000);
P1.affiche();
P2.affiche();
P1.calcul_age();
P2.calcul_age() ;
}
}