Class CorpoCeleste

java.lang.Object
it.unimi.di.prog2.h18.CorpoCeleste
All Implemented Interfaces:
Comparable<CorpoCeleste>
Direct Known Subclasses:
Pianeta, StellaFissa

public abstract class CorpoCeleste extends Object implements Comparable<CorpoCeleste>
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

    Fields
    Modifier and Type
    Field
    Description
    private final String
    Il nome del corpo celeste.
    private Punto
    La posizione del corpo celeste.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    CorpoCeleste(String nome, int x, int y, int z)
    Costruisce un corpo celeste con il nome dato.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract 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
    Restituisce l'energia totale di questo corpo celeste.
    boolean
     
    int
     
    Restituisce il nome di questo corpo celeste.
    Restituisce la posizione di questo corpo celeste.
    protected void
    posizione(Punto posizione)
    Imposta la posizione di questo corpo celeste.
    private boolean
     
    abstract Punto
    Restituisce la velocità di questo corpo celeste.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • nome

      private final String nome
      Il nome del corpo celeste.
    • posizione

      private Punto posizione
      La posizione del corpo celeste.
  • Constructor Details

    • CorpoCeleste

      protected CorpoCeleste(String nome, int x, int y, int z)
      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

      public String nome()
      Restituisce il nome di questo corpo celeste.
    • posizione

      public Punto posizione()
      Restituisce la posizione di questo corpo celeste.
      Returns:
      la posizione (non null}).
    • posizione

      protected void posizione(Punto posizione)
      Imposta la posizione di questo corpo celeste.
      Parameters:
      posizione - la nuova posizione.
      Throws:
      NullPointerException - se la posizione è null.
    • velocità

      public abstract Punto 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à

      public abstract void aggiornaVelocità(CorpoCeleste c)
      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

      public int compareTo(CorpoCeleste o)
      Specified by:
      compareTo in interface Comparable<CorpoCeleste>
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • repOk

      private boolean repOk()