Вы находитесь на странице: 1из 11

Le Les

Langage
classes
Java
Les classes

n Toutes nos voitures ont les mêmes attributs

u marque

u prix

u couleur

n et le même comportement :

u Démarrer

u Arrêter

u faireLePlein

n La «CLASSE» des voitures


Qu’est ce qu’une classe

n Une classe décrit le domaine de définition d’un ensemble d’objets (famille


d’objets),

n Elle regroupe un ensemble d’attributs et de méthodes.

Voiture
Classe des voitures marque
prix
couleur
Le formalisme utilisé ici est celui de la méthode UML: démarrer
stopper
rouler
faireLePlein
Classe et objet

n Une classe est un moule à fabriquer des objets. Un objet est une instance d'une
classe.

Voiture
marque
prix
couleur

démarrer
Instance de classe
stopper
rouler
faireLePlein
Les messages

n Toute manipulation d’objet s’effectue à travers les comportements disponibles et


uniquement à travers ses comportements.

rouler
Les messages

n Le fait d’appuyer sur l’accélérateur demande l'activation de l’opération


correspondante

n Une telle requête est appelé "un message"

n La réception d'un message par un objet provoque la recherche de la méthode à


appliquer.

n Cette recherche a lieu dans la classe.


Recherche de méthode

maVoiture
recherche de
la méthode rouler rouler

Voiture
rouler
...

Méthode pour
rouler
Un premier exemple

public class Voiture


{
// attributs
private int compteur ;
private float reservoir ;

// méthodes
public boolean rouler ( int nbrKlm )
{
for ( int i = 0 ; i < nbrKlm ; i++ )
if ( reservoir != 0 )
{ compteur++ ;
reservoir -= 0.1f ;
}
else
{ System.out.println ("panne"); return false ; }
return true ;
}
public void faireLePlein () { reservoir = 50 ; }
public void afficher () { System.out.println( compteur + " " + reservoir ) ; }
}
Commentaires

n Le mot réservé « class » permet de créer une classe qui va contenir :

u des attributs : private int compteur;

u des méthodes : public boolean rouler ( int nbrKlm );

n private et public sont des attributs d’accès qui vont permettre de gérer
l’encapsulation :

u private : non accessible -> encapsulé

u public : accessible -> interface de la classe

n Remarque : Ne vous focalisez pas sur les éléments syntaxiques. Ils sont peu
importants pour le moment. Le principal étant de bien appréhender le concept.
Encapsulation

public class Test


{
public static void main ( String args [] )
{
Voiture v1 = new Voiture () ;
v1.fairePlein() ;
v1.rouler( 10 );
v1.afficher () ;
}
}

n J’aimerais vérifier l’état de mon réservoir avant de rouler :

if ( v1.reservoir > 10 )
v1.rouler ( 50 ) ;

n Erreur le réservoir est encapsulé il n’est pas accessible. Comment faire ????
Encapsulation

n L’encapsulation permet de protéger les données.

n Mais cela nécessite de prévoir des services d’accès aux données : les
accesseurs :

public class Voiture


{
private float reservoir ;

public float getReservoir()


{ return reservoir ; }

}

n Maintenant je peux tester l’état de mon réservoir :

if ( v1.getReservoir() > 10 )
v1.rouler ( 50 ) ;