Class SistemaAstronomico

java.lang.Object
it.unimi.di.prog2.h18.SistemaAstronomico

public class SistemaAstronomico extends Object
Un sistema astronomico.

Un sistema astronomico è un insieme ordinato di corpi celesti; esso è in grado di simulare l'evoluzione (di posizione e velocità) dei corpi celesti in esso contenuti. e di calcolare la sua energia totale.

L'uso inteso di questa classe è:

  • creare un sistema astronomico;
  • aggiungervi un elencod di corpi celesti;
  • effettuare la simulazione;
  • calcolare l'energia totale.

Il metodo aggiungi(CorpoCeleste) non effettua una copia del corpo celeste, pertanto se il corpo celeste viene modificato dopo l'aggiunta, il comportamento del sistema astronomico non è definito. Gli ultimi due passi possono essere ripetuti, per conoscere lo stato intermedio della simulazione; viceversa, l'aggiunta di corpi celesti dopo l'inizio della simulazione rende il comportamento del sistema astronomico non definito.

  • Field Details

  • Constructor Details

    • SistemaAstronomico

      public SistemaAstronomico()
  • Method Details

    • aggiungi

      public boolean aggiungi(CorpoCeleste c)
      Aggiunge un corpo celeste al sistema.

      Se il corpo celeste è già presente nel sistema (ossia c'è già un corpo celeste con lo stesso nome), non viene aggiunto.

      Parameters:
      c - li corpo celeste.
      Returns:
      true se il corpo celeste è stato aggiunto, false altrimenti.
      Throws:
      NullPointerException - se c è null.
    • passo

      private void passo()
      Svolge un passo di simulazione.

      Per dettagli vedere l'overview di questo pacchetto.

    • simula

      public void simula(int passi)
      Simula l'evoluzione del sistema per un dato numero di passi.
      Parameters:
      passi - il numero di passi da simulare.
      Throws:
      IllegalArgumentException - se passi non è positivo.
    • energia

      public long energia()
      Restituisce l'energia complessiva del sistema.
      Returns:
      l'energia totale.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • repOk

      private boolean repOk()