Class Frazione

java.lang.Object
it.unimi.di.prog2.h11.Frazione

public class Frazione extends Object
Una frazione.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final int
    Il denominatore della frazione.
    private final int
    Il numeratore della frazione.
    static final Frazione
    La fazione 1.
    static final Frazione
    La frazione 0
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Frazione(int num, int den)
    Costruisce una frazione dati numeratore e denominatore (parziale).
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    den()
    Restituisce il denominatore.
    boolean
     
    private static final long
    gcd(long a, long b)
    Calcola il massimo comun divisore tra due interi.
    int
     
    private static Frazione
    norm(long num, long den)
    Fabbrica una frazione dati numeratore e denominatore.
    int
    num()
    Restituisce il numeratore.
    static Frazione
    numDen(int num, int den)
    Fabbrica una frazione dati numeratore e denominatore.
    prodotto(int n)
    Restituisce la frazione ottenuta moltiplicando questa frazione per una intero dato.
    Restituisce la frazione ottenuta moltiplicando questa frazione per una frazione data.
    Restituisce la frazione ottenuta sommando questa frazione con una frazione data.
     

    Methods inherited from class java.lang.Object

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

    • num

      private final int num
      Il numeratore della frazione.
    • den

      private final int den
      Il denominatore della frazione.
    • UNO

      public static final Frazione UNO
      La fazione 1.
    • ZERO

      public static final Frazione ZERO
      La frazione 0
  • Constructor Details

    • Frazione

      private Frazione(int num, int den)
      Costruisce una frazione dati numeratore e denominatore (parziale).
      Parameters:
      num - il numeratore.
      den - il denominatore (deve essere diverso da 0).
  • Method Details

    • numDen

      public static Frazione numDen(int num, int den) throws IllegalArgumentException
      Fabbrica una frazione dati numeratore e denominatore.

      Nel caso in cui num == 0 verrà restituito il singoletto ZERO, similmente nel caso in cui num == den verrà restituito il singoletto UNO.

      Parameters:
      num - il numeratore.
      den - il denominatore.
      Returns:
      la frazione num/den.
      Throws:
      IllegalArgumentException - se den == 0.
    • norm

      private static Frazione norm(long num, long den) throws IllegalArgumentException
      Fabbrica una frazione dati numeratore e denominatore.

      Nel caso in cui num == 0 verrà restituito il singoletto ZERO, similmente nel caso in cui num == den verrà restituito il singoletto UNO.

      Parameters:
      num - il numeratore.
      den - il denominatore.
      Returns:
      la frazione num/den.
      Throws:
      IllegalArgumentException - se den == 0.
    • num

      public int num()
      Restituisce il numeratore.
      Returns:
      il numeratore (se la frazione è negativa, sarà negativo).
    • den

      public int den()
      Restituisce il denominatore.
      Returns:
      il denominatore (è sempre positivo).
    • somma

      public Frazione somma(Frazione f) throws NullPointerException
      Restituisce la frazione ottenuta sommando questa frazione con una frazione data.
      Parameters:
      f - la frazione da sommare.
      Returns:
      la frazione this + f.
      Throws:
      NullPointerException - se f è null.
    • prodotto

      public Frazione prodotto(Frazione f)
      Restituisce la frazione ottenuta moltiplicando questa frazione per una frazione data.
      Parameters:
      f - la frazione da moltiplicare.
      Returns:
      la frazione this * f.
      Throws:
      NullPointerException - se f è null.
    • prodotto

      public Frazione prodotto(int n)
      Restituisce la frazione ottenuta moltiplicando questa frazione per una intero dato.
      Parameters:
      n - l'intero da moltiplicare.
      Returns:
      la frazione this * n.
    • gcd

      private static final long gcd(long a, long b)
      Calcola il massimo comun divisore tra due interi.

      Questa funzione accetta e restituisce argomenti di tipo long, questo può essere utile per trattare frazioni che ridotte ai minimi termini possono essere rappresentate tramite interi di tipo int.

      Parameters:
      a - il primo intero.
      b - il secondo intero.
      Returns:
      il loro MCD (se b != 0 altrimenti a).
    • equals

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

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

      public String toString()
      Overrides:
      toString in class Object