07:53:09 13/03/2008
Cette section sert donc à l'aide à la programmation en SmallTalk.
Depuis la syntaxe, jusqu'à des concepts plus abstraits et complexe, toutes les questions de programmation devraient pouvoir être réglées (ou pas) ici.
Commençons alors par le début (cela sert, il paraît).
SmallTalk n'est pas du C, ni du java (heureusement)… ST, c'est un principe simple, même un enfant peut le comprendre (l'exploiter, c'est autre chose). Pour ST, il n'y a que 2 éléments différents : les objets, et les méthodes*.
Pour ceux qui n'ont pas vu les concepts d'objets, un objet est une structure de données capable d'exécuter certaines actions.
Par exemple ; un personnage est un objet de type "fiche de personnage", avec différentes caractéristiques (des variables donc ; de l'information propre au personnage). Et un personnage peut faire certaines actions spécifiques (rater un jet, mourrir…).
Il faut savoir que le concept d'objet va avec deux idées.
L'instanciation consiste à séparer le modèle de l'objet (fiche de personnage) de son utilisation (le personnage). Le modèle est théorique, tandis que le second (l'instance) est ce que l'on utilise (deux fiches de personnages différentes mais ayant les mêmes propriétés sont donc deux instances d'un même modèle, la classe).
La hiérarchisation consiste à définir progressivement les modèles, spécialisant au fur-et-à-mesure. Plutôt que de faire directement 40 fiches de personnages avant des propriétés toutes différentes, on créé en premier les éléments communs.
Un exemple pratique : on veut représenter un chat, un loup, une vache et de l'herbe.
On créé une classe "Animal", qui a les propriétés basiques (se déplacer, manger, mourir, s'accoupler). On spécialise cette classe en deux branches : "Herbivore" qui ne mange que de l'herbe, et "Carnivore", qui ne mange pas de l'herbe, mais des Animaux (peu importe lequel). Carnivore est à nouveaux spécialisé en deux branches : "Loup" et "Chat" (si l'on veut les spécialiser).
On créé une classe "Plante", qui a les propriété basique (pousser, mourir). Et on la spécialise en "Herbe".
C'est basique, et il y a d'autres solutions possibles, d'autres organisations de la hiérarchie. Libre à chacun de trouver la voie la plus intéressante selon lui/elle.
* : pour être exact, ST n'a que 1 élément existant ; l'objet. Tout est un objet spécifique, y compris les méthodes qui sont des objets spécifiques. Mais l'idée reste là.
Depuis la syntaxe, jusqu'à des concepts plus abstraits et complexe, toutes les questions de programmation devraient pouvoir être réglées (ou pas) ici.
Commençons alors par le début (cela sert, il paraît).
SmallTalk n'est pas du C, ni du java (heureusement)… ST, c'est un principe simple, même un enfant peut le comprendre (l'exploiter, c'est autre chose). Pour ST, il n'y a que 2 éléments différents : les objets, et les méthodes*.
Pour ceux qui n'ont pas vu les concepts d'objets, un objet est une structure de données capable d'exécuter certaines actions.
Par exemple ; un personnage est un objet de type "fiche de personnage", avec différentes caractéristiques (des variables donc ; de l'information propre au personnage). Et un personnage peut faire certaines actions spécifiques (rater un jet, mourrir…).
Il faut savoir que le concept d'objet va avec deux idées.
L'instanciation consiste à séparer le modèle de l'objet (fiche de personnage) de son utilisation (le personnage). Le modèle est théorique, tandis que le second (l'instance) est ce que l'on utilise (deux fiches de personnages différentes mais ayant les mêmes propriétés sont donc deux instances d'un même modèle, la classe).
La hiérarchisation consiste à définir progressivement les modèles, spécialisant au fur-et-à-mesure. Plutôt que de faire directement 40 fiches de personnages avant des propriétés toutes différentes, on créé en premier les éléments communs.
Un exemple pratique : on veut représenter un chat, un loup, une vache et de l'herbe.
On créé une classe "Animal", qui a les propriétés basiques (se déplacer, manger, mourir, s'accoupler). On spécialise cette classe en deux branches : "Herbivore" qui ne mange que de l'herbe, et "Carnivore", qui ne mange pas de l'herbe, mais des Animaux (peu importe lequel). Carnivore est à nouveaux spécialisé en deux branches : "Loup" et "Chat" (si l'on veut les spécialiser).
On créé une classe "Plante", qui a les propriété basique (pousser, mourir). Et on la spécialise en "Herbe".
C'est basique, et il y a d'autres solutions possibles, d'autres organisations de la hiérarchie. Libre à chacun de trouver la voie la plus intéressante selon lui/elle.
* : pour être exact, ST n'a que 1 élément existant ; l'objet. Tout est un objet spécifique, y compris les méthodes qui sont des objets spécifiques. Mais l'idée reste là.