26
Les Classes en Java Préparé par ING. David JOSEPH

Les Classe en Java

Embed Size (px)

DESCRIPTION

Quelques notions pour mieux comprendre le fonctionnement des classes et savoir comment créer sa première classe en java.

Citation preview

Page 1: Les Classe en Java

Les Classes en Java

Préparé par ING. David JOSEPH

Page 2: Les Classe en Java

System.out.println(‘’Hello World’’);

Plan Introduction Les Constructeurs Instancier une classe Les méthodes Les attributs Exemples de Classes Examen d’ évaluation TP

Page 3: Les Classe en Java

Introduction

• La notion de classe constitue le fondement de la programmation orientée objet. Une classe est la déclaration d'un type d'objet. En Java, les classes sont déclarées à l'aide du mot-clef class, suivi du nom de la classe déclarée, suivi du corps de la classe entre accolades. Par convention, un nom de classe commence par une majuscule.• Exemple:public class MaClasse { // corps de la classe }

Page 4: Les Classe en Java

Introduction

• Le fichier contenant cette déclaration doit avoir pour extension .java. Un fichier peut contenir plusieurs déclarations de classes (ce n'est pas recommandé, il faut partir du principe 1 classe = 1 fichier, pour des problèmes évidents de relecture du code, devoir modifier du code où plusieurs classes sont écrites dans un seul fichier est le meilleur moyen de faire n'importe quoi), mais il ne peut contenir qu'au plus une classe dite publique (dont le mot-clef class est précédé de public, comme dans l'exemple ci-dessus). Le fichier doit obligatoirement porter le même nom que cette classe publique : dans l'exemple ci-dessus, il faudrait donc sauver notre classe dans un fichier nommé MaClasse.java.

Page 5: Les Classe en Java

Introduction

• Un fichier .java peut commencer par une ou plusieurs déclarations d'import. Ces imports ne sont pas indispensables, mais autorisent en particulier l'accès aux classes prédéfinies sans avoir à spécifier leur chemin d'accès complet dans les collections de classes prédéfinies (organisées en packages). • Dans le code ci-dessous, on souhaite par exemple utiliser la classe

prédéfinie Vector (un type de données comparable à des tableaux dont la taille peut varier dynamiquement). Dans la sous-collection de classes prédéfinies "java", cette classe se trouve dans la sous-collection "util" (ou encore : cette classe est dans le package "java.util").

Page 6: Les Classe en Java

Introduction

• Sans import, il faut spécifier le nom complet de la classe (packages inclus) :• Exemple:public class MaClasse { // ... public static void main(String[] args)

{ // sans l'import : java.util.Vector v = new java.util.Vector(); // ... }

}

Page 7: Les Classe en Java

Introduction

• Avec import, seul le nom de la classe (sans packages) utilisée est nécessaire :

• Exemple:import java.util.Vector; public class MaClasse { // ... public static void main(String[] args)

{ // avec l'import : Vector v = new Vector(); // ... }

}

Page 8: Les Classe en Java

Les Constructeurs

• Java propose des méthodes particulières qui ont comme rôle d'initialiser les attributs, ce sont les constructeurs. Un constructeur est appelé automatiquement au moment au moment de la création de l'objet à l'aide de l'opérateur new. • Les constructeurs ont une signature particulière. Ils portent le nom de la classe. Ils

ne retourne rien, pas même void.• Exemple:• public Produit( String l, int p, int q)

{ this.Libelle = l; this.Prix = p; this.QtStock = q; }

Page 9: Les Classe en Java

Les Constructeurs

• Chaque objet de la classe Produit sera instancié en utilisant le constructeur. On peut écrire plusieurs constructeurs pour une classe. Il existe des Constructeurs paramétrés et des constructeurs non paramètres. Le mécanisme permettant de définir plusieurs méthodes ayant le même nom (mais pas la même signature) s'appelle une surcharge. Le mécanisme de surcharge s'inscrit dans un concept plus général, celui de polymorphisme.

ExempleProduit p = new Produit( ); // appel du constructeur par défaut.Produit p1 = new Produit("scie",50, 10); //appel du constructeur à trois arguments

• Le langage appellera le constructeur correspondant aux arguments passés au moment de l'appel.

• Remarque:Il est fortement conseiller de toujours fournir au moins un constructeur à chaque classe.

Page 10: Les Classe en Java

Instancier une Classe

• Un objet peut être vu comme un ensemble de données regroupées à la manière des structures de C ou des enregistrements de Pascal. Une classe définit un modèle d'objet. Chaque objet créé à partir d'une classe est appelé instance de cette classe. L'ensemble de données internes d'un objet - les champs de cet objet - est spécifié par sa classe. Une classe peut en outre contenir : d'une part, des constructeurs - du code destiné à l'initialisation de ses instances au moment de leur création ; d'autre part des méthodes - du code destiné à la gestion des données internes de chacune de ses instances.

Page 11: Les Classe en Java

Les méthodes: Introduction

• Le rôle d'une méthode est d'effectuer un traitement en utilisant, en général, les données. Les méthodes peuvent être public, private, protected. L'ensemble des méthodes publiques représente l'interface de la classe, sa partie "utilisable" à l'extérieur.

• On peut les classer en trois groupes selon leurs fonctionnalitésa) Les fonctions de créationb) Les méthodes accesseurs/modificateurs

Page 12: Les Classe en Java

Les méthodes

a) Les fonctions de créationCes fonctions qui permettent de créer des objets seront étudiées un peu plus loin.

b) Les méthodes accesseurs/modificateurs Elles permettent soit de donner l'état de l'objet sans le modifier (on utilise en général le préfixe Get), soit de soit de modifier l'état de l'objet (on utilise en général le préfixe Set)

Page 13: Les Classe en Java

Les méthodes

Exemple: public String GetLibelle() { return this.Libelle; }

public void SetStock(int s) { this.QtStock = s; }

• Remarque: nous avons utilisé le mot réservé this afin de faire référence à l'objet courant, cette écriture (non indispensable) améliore la lisibilité.

Page 14: Les Classe en Java

Les méthodes: allocation

•Rien: Méthode d’objet ou d’instance. La méthode est liée a un objet.

• Static: Méthode de classe: méthode indépendante de tout objet. Ne peut accéder qu’a des attributs ou des méthodes statiques.

Page 15: Les Classe en Java

Les méthodes: Type de retour

•Rien: C’est un constructeur•Void: La fonction en retourne aucune valeur

(procédure).• <type primitif>: Donnée de type valeur.• <classe>: Nom de la classe de la référence de l’objet

retourné.

Page 16: Les Classe en Java

Les méthodes: static ou non static

•Une méthode static ou méthode de classe est peut être utilisée sans instancier d’objet. Exemple : double racinedeDeux=Math.sqrt(2);•Une méthode est rendue static pour les raisons suivantes:

1) Méthode utilitaire dans une classe type metier (exemple Math.sqrt);

2) Méthode ne devant être liée a aucun objet (exemple : main);

3) Pour se rapprocher des conventions d’ecriture.

Page 17: Les Classe en Java

Les attributs

• Les attributs peuvent être des:1) constants;2) Variables3) Des références d’objets

Page 18: Les Classe en Java

Les attributs: Portée

• Rien: portée limitée au package;

• Public: portée générale;

• Private: portée limitée aux méthodes de la classe;

• Protected: portée limitée aux méthodes de la classe et aux méthodes situées dans des classes derivées.

Page 19: Les Classe en Java

Les attributs: Durée de vie

•Rien: attribute d’objet ou d’instance. Durée de vie égale a celle de l’objet.

• Static: attribut de classe: durée de vie égale a celle du programme. Un attribut statique n’est lié a aucun objet.

Page 20: Les Classe en Java

Les attributs: Type

•Un primitive parmi: booléan, char, int, float, double, etc..

•Une classe connue: String, etc…

Page 21: Les Classe en Java

Attribut ou variables locales?

•On utilise un attribut pour:1) Partager des données ou des objets entre plusieurs methodes.2) Avoir une durée de vie supérieur a celle d’une méthode

•Dans tous autre cas, il faut utiliser des variables locales aux méthodes.

Page 22: Les Classe en Java

Attributs static ou non static?

•Un attribut n’est que rarement static. Un attribut est rendu static pour les raisons suivantes:

1. Les methodes static ne peuvent acceder qu’au attributs static

2. On doit partager le meme attribute entre plusieurs objets

3. On veut disposer d’une donnée indépendante de tout objet.

Page 23: Les Classe en Java

Exemple de classe

Page 24: Les Classe en Java

Exemple de classe

Page 25: Les Classe en Java

TP

• Développer une classe permettant de résoudre des équations de seconde degré; la classe doit être en mesure d’afficher les solutions s’il en existe (S1 et S2), la valeur de delta (d) • Travail a faire:

1. Identifier tous les attributs (portée, type, valeur initiale) et variables locales nécessaires;

2. Ecrire le ou les constructeur(s);3. Les méthodes4. Les procédures5. Une méthode qui affiche par exemple « Les solutions de l’ équation 2x^2

+3x-6 : sont S1= et S2= »; 4 points par bonne réponse

Page 26: Les Classe en Java

Préparée par: ING. David Joseph

Date présentation: 20/06/2014

Email: [email protected]