Enseignement > Programmation orientée objet > Java > Travaux Pratiques > TP n°6 - Astres  

Dans cet exercice, on cherche à modéliser corps célestes.
Toutes les classes seront placées dans un package appelé Astronomie

1. Créer une classe Point3D similaire à  celle-ci

2. On considère qu'un astre est un objet céleste qui possède un nom, une masse (forcément positive).
Ecrire une classe abstraite Astre qui modélise ces objets.
Prendre soin d'encapsuler les attributs.
Lever une exception si on essaye de créer un astre de masse négative.

Ecrire une méthode abstraite qui donne la position de l'astre à un instant t
Point3D position(double t)

Réécrire la méthode toString() qui reprendra ces informations.

3. Ecrire une classe abstraite AstreSpherique héritant de la classe Astre. Un astre sphérique possède un rayon.
    Ecrire une méthode permettant de connaitre la densité d'un astre sphérique.

4. On cherche à modéliser un système "solaire" dans lequel il y a une étoile fixe au centre du système
Ecrire une classe Etoile héritant de la classe AstreSpherique. Dans un tel système, on considère que l'étoile a une position fixe.
Implémenter en conséquence la méthode Point3D position(double t)

5. Objets en orbite
Certains astres sont en orbite par rapport à d'autres selon les lois de Kepler
Ecrire une interface Orbitable décrivant les propriété d'un astre en orbite : un astre en orbite devra pouvoir préciser

  • l'astre autour duquel il tourne
  • ses demi-grands axes a et b
  • sa période de révolution

6. un satellite est un astre  qui est en orbite autour d'un autre astre
ecrire une classe Satellite  

7. une planete est un astre  qui est en orbite autour d'une étoile
ecrire une classe Planete

8. Un système solaire est composé d'une étoile autour de laquelle gravitent des astres.
Ecrire une classe SystemeSolaire
Ecrire une méthode qui affiche l'état (c'est à dire la liste des astres et leur position) à un instant t
Ecrire 2 méthodes permettant de sauvegarder le système dans un fichier et de le relire