Classes et objets
Objectifs : vous familiarisez avec la programmation orientée objet.
Une première classe
- sauvegarder le source de la classe Rectangle et le compiler,
- après analyse de cette classe (déclaration, attributs, méthodes dont constructeur), écrire de la même manière une classe Disque comportant la variable de classe static final double pi=3.14159, l'attribut diametre, un constructeur et les 4 méthodes perimetre, surface, rayon et doubler.
Instance
Pour créer une instance, on déclare une variable du type correspondant et on crée un objet (appel d'un constructeur) à l'aide de l'instruction new. Exemple : rect1 = new Rectangle(2,5);. L'appel à une méthode de l'instance se fait par le nom de la variable suivi du nom de la méthode. Exemple : rect1.diagonale().
- le programme TestRectangle utilise la classe Rectangle : le compiler et l'executer,
- écrire de la même manière le programme TestDisque, utilisant la classe Disque, qui doit créer un objet de type Disque, afficher son rayon, son perimètre et sa surface puis faire appel à la méthode doubler et enfin afficher la nouvelle surface.
Surcharge de méthodes
Pour une même classe, il est possible de créer plusieurs constructeurs se distinguant les uns des autres par le nombre et/ou le type de leurs paramètres. De même, une méthode peut exister en plusieurs exemplaires, chacun d'eux se distinguant par ses paramètres et évidemment par son action.
- ajouter un constructeur à la classe Rectangle qui détermine sa hauteur et sa largeur à partir de la donnée des coordonnées de ses sommets inférieur gauche et supérieur droit,
- de même, modifier la classe Disque en définissant un nouveau constructeur qui calcule le diamètre du disque à partir des coordonnées de son centre et d'un point de sa frontière,
- écrire un programme TestObjets qui construit des objets Rectangle et Disque de plusieurs facons,
- ajouter une méthode doubler() à la classe Rectangle permettant de doubler de manière indépendante la largeur et la hauteur d'une instance ; compléter le programme TestObjets en invoquant les deux méthodes doubler().