Package it.unimi.di.prog2.h18
Class CorpoCeleste
java.lang.Object
it.unimi.di.prog2.h18.CorpoCeleste
- All Implemented Interfaces:
Comparable<CorpoCeleste>
- Direct Known Subclasses:
Pianeta
,StellaFissa
Un corpo celeste.
Un corpo celeste è caratterizzato da
- un nome (non non vuoto, o composto di soli spazi);
- una posizione e una velocità dati da un
Punto
; - una energia data dal prodotto della norma della posizione per la norma della velocità.
Un corpo celeste può aggiornare la sua velocità in funzione dell'interazione con un altro corpo celeste; una volta modificata la sua velocità, esso può aggiornare la sua posizione. Per i dettagli si consulsti l'overview di questo paccchetto.
L'uguaglianza e l'ordinamento tra corpi celesti è basata soltanto sul nome.
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
CorpoCeleste
(String nome, int x, int y, int z) Costruisce un corpo celeste con il nome dato. -
Method Summary
Modifier and TypeMethodDescriptionabstract void
Aggiorna la posizione di questo corpo celeste (usualmente a seguito di un cambiamento della sua velocità).abstract void
Aggiorna la velocità di questo corpo celeste.int
long
energia()
Restituisce l'energia totale di questo corpo celeste.boolean
int
hashCode()
nome()
Restituisce il nome di questo corpo celeste.Restituisce la posizione di questo corpo celeste.protected void
Imposta la posizione di questo corpo celeste.private boolean
repOk()
abstract Punto
velocità()
Restituisce la velocità di questo corpo celeste.
-
Field Details
-
nome
Il nome del corpo celeste. -
posizione
La posizione del corpo celeste.
-
-
Constructor Details
-
CorpoCeleste
Costruisce un corpo celeste con il nome dato.- Parameters:
nome
- il nome.- Throws:
NullPointerException
- se il nome ènull
.IllegalArgumentException
- se il nomoe è composto di soli spazi, o vuoto.
-
-
Method Details
-
nome
Restituisce il nome di questo corpo celeste. -
posizione
Restituisce la posizione di questo corpo celeste.- Returns:
- la posizione (non
null
}).
-
posizione
Imposta la posizione di questo corpo celeste.- Parameters:
posizione
- la nuova posizione.- Throws:
NullPointerException
- se la posizione ènull
.
-
velocità
Restituisce la velocità di questo corpo celeste.- Returns:
- la velocità (non
null
}).
-
energia
public long energia()Restituisce l'energia totale di questo corpo celeste.- Returns:
- l'energia.
-
aggiornaPosizione
public abstract void aggiornaPosizione()Aggiorna la posizione di questo corpo celeste (usualmente a seguito di un cambiamento della sua velocità). -
aggiornaVelocità
Aggiorna la velocità di questo corpo celeste.La velocità va aggiornata in funzione dell'interazione con il corpo celeste dato come argomento secondo quanto illustrato nell'overview di questo pacchetto; questo metodo non deve modificare il corpo celeste dato come argomento.
- Parameters:
c
- il corpo celeste con cui interagire.
-
compareTo
- Specified by:
compareTo
in interfaceComparable<CorpoCeleste>
-
equals
-
hashCode
public int hashCode() -
repOk
private boolean repOk()
-