Class SistemaAstronomico
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 Summary
Modifier and TypeFieldDescriptionprivate final SortedSet<CorpoCeleste>
L'insieme dei corpi celesti. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Aggiunge un corpo celeste al sistema.long
energia()
Restituisce l'energia complessiva del sistema.private void
passo()
Svolge un passo di simulazione.private boolean
repOk()
void
simula
(int passi) Simula l'evoluzione del sistema per un dato numero di passi.toString()
-
Field Details
-
corpiCelesti
L'insieme dei corpi celesti.
-
-
Constructor Details
-
SistemaAstronomico
public SistemaAstronomico()
-
-
Method Details
-
aggiungi
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
-
repOk
private boolean repOk()
-