En programmation objet pure, il n’y a plus de notion de programme principal et de sousprogrammes : tous les
traitements se font au sein des méthodes, et même le bloc d’instructions principal est une méthode au sein d’une
classe, comme en Java.
Comme tous les composants d’un programme sont des objets, il s’établit une communication entre les objets. En
pratique c’est évidemment vous qui initiez cette communication : quand on dit qu’un premier objet demande quelque
chose à un second, c’est que l’une des méthodes du premier objet appelle l’une des méthodes du second. Puisque tout
est objet, vous pouvez créer une instance du second objet comme attribut du premier, ou même passer des objets en
arguments de méthodes.
Dans l’exemple précédent, l’objet de type Ecran peut recevoir le message modifie_type qui modifie l’attribut type.
Il est possible de décrire (programmer) une méthode en dehors de la définition de la classe (en algorithmique, mais
pas en Java par exemple). Dans ce cas, dans la définition de la classe vous écrivez le prototype de la méthode
(nom+paramètres) et en dessous vous définissez la méthode. Vous devez respecter la syntaxe suivante avec les
doubles points "::" entre le nom de la classe et la méthode :
Procédure classe::methode(params)
Par exemple :
Classe Ecran
...
méthodes
Procédure modifie_type(E :t :chaîne)
...
FinClasse
Procédure Ecran::modifie_type(E :t :chaîne)
Début
this.type←t
FinProc
7. Portée des membres
Dans le programme obj1 l’accès aux divers membres, attributs ou méthodes, se fait directement. Le programme accède
aux membres en passant par l’objet et l’opérateur point. C’est que dans la définition de la classe, les membres sont
bien souvent publics : ils sont accessibles sans aucune protection.
Vous pouvez choisir de rendre les divers membres publics ou privés. Par défaut en Java par exemple si vous ne
précisez rien tous sont publics. En algorithmique les attributs sont par défaut privés et les méthodes publiques.
q Public : les membres sont directement accessibles depuis toute autre partie du programme ou objet comme
dans les exemples précédents via l’opérateur point.
q Privé : les membres ne sont plus accessibles depuis l’extérieur de l’objet. Ils sont seulement accessibles
depuis l’intérieur de l’objet.
Vous pouvez préciser dans les déclarations le type d’accès à vos membres. Voici un exemple de la classe Ecran où les
attributs sont privés, donc accessibles uniquement depuis les méthodes de l’objet, et les méthodes publiques :
Classe Ecran
attributs privés
type :chaîne
marque :chaîne
modèle :chaîne
...
méthodes publiques
Procédure regler_affichage(...)
Procédure affiche_modèle()
Procédure saisie_modèle()
FinClasse
Avec cette nouvelle définition, vous ne pouvez plus utiliser le programme obj1 tel quel. Vous devez le modifier.
Programme obj2
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
200
traitements se font au sein des méthodes, et même le bloc d’instructions principal est une méthode au sein d’une
classe, comme en Java.
Comme tous les composants d’un programme sont des objets, il s’établit une communication entre les objets. En
pratique c’est évidemment vous qui initiez cette communication : quand on dit qu’un premier objet demande quelque
chose à un second, c’est que l’une des méthodes du premier objet appelle l’une des méthodes du second. Puisque tout
est objet, vous pouvez créer une instance du second objet comme attribut du premier, ou même passer des objets en
arguments de méthodes.
Dans l’exemple précédent, l’objet de type Ecran peut recevoir le message modifie_type qui modifie l’attribut type.
Il est possible de décrire (programmer) une méthode en dehors de la définition de la classe (en algorithmique, mais
pas en Java par exemple). Dans ce cas, dans la définition de la classe vous écrivez le prototype de la méthode
(nom+paramètres) et en dessous vous définissez la méthode. Vous devez respecter la syntaxe suivante avec les
doubles points "::" entre le nom de la classe et la méthode :
Procédure classe::methode(params)
Par exemple :
Classe Ecran
...
méthodes
Procédure modifie_type(E :t :chaîne)
...
FinClasse
Procédure Ecran::modifie_type(E :t :chaîne)
Début
this.type←t
FinProc
7. Portée des membres
Dans le programme obj1 l’accès aux divers membres, attributs ou méthodes, se fait directement. Le programme accède
aux membres en passant par l’objet et l’opérateur point. C’est que dans la définition de la classe, les membres sont
bien souvent publics : ils sont accessibles sans aucune protection.
Vous pouvez choisir de rendre les divers membres publics ou privés. Par défaut en Java par exemple si vous ne
précisez rien tous sont publics. En algorithmique les attributs sont par défaut privés et les méthodes publiques.
q Public : les membres sont directement accessibles depuis toute autre partie du programme ou objet comme
dans les exemples précédents via l’opérateur point.
q Privé : les membres ne sont plus accessibles depuis l’extérieur de l’objet. Ils sont seulement accessibles
depuis l’intérieur de l’objet.
Vous pouvez préciser dans les déclarations le type d’accès à vos membres. Voici un exemple de la classe Ecran où les
attributs sont privés, donc accessibles uniquement depuis les méthodes de l’objet, et les méthodes publiques :
Classe Ecran
attributs privés
type :chaîne
marque :chaîne
modèle :chaîne
...
méthodes publiques
Procédure regler_affichage(...)
Procédure affiche_modèle()
Procédure saisie_modèle()
FinClasse
Avec cette nouvelle définition, vous ne pouvez plus utiliser le programme obj1 tel quel. Vous devez le modifier.
Programme obj2
- 7 -
© ENI Editions - All rigths reserved - Jonifar lina
200
