Les Classe en Java

Preview:

DESCRIPTION

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

Citation preview

Les Classes en Java

Préparé par ING. David JOSEPH

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

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

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 }

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.

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").

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(); // ... }

}

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(); // ... }

}

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; }

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.

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.

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

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)

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é.

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.

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é.

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.

Les attributs

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

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.

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.

Les attributs: Type

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

•Une classe connue: String, etc…

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.

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.

Exemple de classe

Exemple de classe

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

Préparée par: ING. David Joseph

Date présentation: 20/06/2014

Email: ingjosephdavid@gmail.com

Recommended