POO généralités structure d’une classe

Cours POO généralités structure d’une classe, tutoriel & guide de travaux pratiques en pdf.

POO GÉNÉRALITÉS
STRUCTURE D’UNE CLASSE
CONSTRUCTEUR
L’OBJET
CRÉATION ET DÉFINITION D’UNE CLASSE
SPÉCIFICATION ET IMPLÉMENTATION
DISCUSSION SUR LE POSITIONNEMENT D’UN SERVICE

Structure d’une classe

Lorsqu’une déclaration est précédée du mot clef static, cette information concerne la classe, tous les services définis dans la classe auront accès à cette information. On parle alors de services ou de variables de classes (par opposition aux services ou variables d’instances).
Static : Contexte de classe
Rien : Contexte d’objet ou d’instance.

Public class Rationnel {
private int numerateur; // variable d'instance spécifique à un objet particulier
private int denominateur; // variable d'instance spécifique à un objet particulier
public void reduction () { // service d'instance spécifique à un objet particulier
...........
}

Constructeur

Syntaxiquement le constructeur est un service qui porte le même nom que la classe et qui ne possède pas de type de retour. Le rôle du constructeur est d’initialiser les valeurs des variables d’instances d’un objet. On dit aussi que le constructeur donne l’état initial d’un objet.
Remarque: Pour construire un objet (instancier), on peut avoir besoin d’information en provenance de l’extérieur. Pour cela, il est nécessaire de pouvoir disposer de plusieurs constructeurs différents, on parle alors de surcharge des constructeurs.
Exemple:

public class Rationnel{
private int numerateur;
private int denominateur;
public Rationnel() // constructeur sans paramètre.
{

numerateur = denominateur = 1; // on crée l'élément neutre.
}
public Rationnel(int num, int deno) // un autre constructeur qui surcharge le précédent.
{
numerateur = nu;
denominateur = deno;
}

L’objet

Un objet est instance d’une unique classe, c’est à dire qu’il est créé par une classe. Comme une classe définit un type, un objet au moment de sa création aura comme type réel le type de la classe qui l’a instancié. Par exemple, lorsqu’on écrit new Rationnel(), on vient de créer un nouvel objet instance de la classe Rationnel, le type réel de cet objet est définitivement Rationnel.
Un objet a un comportement, c’est à dire l’ensemble des services d’instances qui ont été définis par la classe qui a créé le nouvel objet. Pour évoquer le comportement associé au un Service d’un objet O on utilise la syntaxe:
O.unService(p1,…pn);

Création et définition d’une classe

Une classe permet de définir un nouveau type, d’instancier des objets, d’appeler les services sur cet objet. Elle se fait en plusieurs étapes de réflexion.
• Définition de l’interface fonctionnelle publique. Il s’agit de trouver l’ensemble des services que pourra rendre la classe. Cette interface fonctionnelle est constituée des services publics de classe et des services publics d’instances. Il n’est pas toujours facile de distinguer entre un service publique de classe ou un service publique d’instance. Prenons par exemple, la division de deux rationnels.
■ Service de classe: Rationnel res = Rationnel.division(p,q); On doit interpréter cet appel, comme demander à la classe Rationnel de rendre le service division en considérant deux rationnels qui sont p et q. Le service de classe division rend alors un nouvel objet de type Rationnel qui est le résultat de la division.
■ Service d’instance:Rationnel res = p.division(q); Dans ce cas, on demande à l’objet p de rendre le service associé à la division en prenant comme paramêtre l’objet q, l’objet p a en charge de créer un nouvel objet, de faire le calcul et de rendre le résultat.

Spécification et implémentation

Dans tous les cas de figure, l’implémentation d’une classe doit-être conforme au spécification. Par exemple, pour les rationnels est ce que l’on utilise la définition suivante. Un rationnel est un couple d’entiers relatifs, tel que le dénominateur ne soit jamais nul. Dans ce cas, le code du constructeur est alors le suivant :

Public Rationnel(int n, int q) {
this.numerateur = n; // on utilise this
this. denominateur = q;
}

Par contre si les spécifications pour un rationnel sont les suivantes: Un rationnel est un couple d’entiers relatifs, tel que le dénominateur ne soit jamais nul et tel que le numérateur et le rationnel sont premier entre eux. Dans ce cas, le code du constructeur est alors le suivant :

public Rationnel(int n, int q) {
this.numerateur = n; // on utilise this
this. denominateur = q;
this.reduire().
}
private void reduire(){
int n = //on calcule le pgcd de numerateur et de denominateur.
this.numerateur /= n;
this.denominateur /=n;
}

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *