Java - TP 2
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
Disquecomportant la variable de classestatic final double pi=3.14159, l'attributdiametre, un constructeur et les 4 méthodesperimetre,surface,rayonetdoubler.
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 classeDisque, qui doit créer un objet de typeDisque, afficher son rayon, son perimètre et sa surface puis faire appel à la méthodedoubleret 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
Rectanglequi 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
Disqueen 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
TestObjetsqui construit des objetsRectangleetDisquede plusieurs facons, - ajouter une méthode
doubler()à la classeRectanglepermettant de doubler de manière indépendante la largeur et la hauteur d'une instance ; compléter le programmeTestObjetsen invoquant les deux méthodesdoubler().