Как реализовать операции из подписей

У меня проблемы с реализацией некоторых операций, конвертирующих дробные в градусы в минутах и ​​секундах.

Вот класс UML, с которым я работаю:

Учебный класс:

Angle

Поля:

-MINUTES_PER_DEGREE:final int = 60
-SECONDS_PER_MINUTE:final int = 60
-SECONDS_PER_DEGREE:final int = 3600
-DEGREE_SYMBOL:final char = '\u00B0'
-degrees: int
-minutes: int
-seconds: double

Методы:

+add(left: Angle, right: Angle): Angle
+subtract(left: Angle, right: Angle): Angle
+Angle()
+Angle(fractionalDegrees:double)
+Angle(degrees: int, minutes: int, seconds: double)
+getDegrees(): int
+getMinutes(): int
+getSeconds(): double
+getAngleInFractionalDegrees(): double
+setDegrees(degrees: int): void
+setMinutes(minutes: int): void
+setSeconds(seconds: double): void
+setAngle(degrees: int, minutes: int, seconds: double): void
+setAngleToFractionalDegrees(fractionalDegrees: double): void
+addAngle(angle: Angle): void
+addDegrees(degrees: int): void
+addMinutes(minutes: int): void
+addSeconds(seconds: double): void
+subtractAngle(angle: Angle): void
+subtractDegrees(degrees: int): void
+subtractMinutes(minutes: int): void
+subtractSeconds(seconds: double): void
+toString(): String

И вот что я сделал до сих пор. Закомментированные части - вот с чем у меня проблема. В основном мои проблемы окружают сложение и вычитание. Я не уверен, правильно ли я использую UML или что еще мне не хватает.

class Angle
{

    private static final int MINUTES_PER_DEGREE = 60;
    private static final int SECONDS_PER_MINUTE = 60;
    private static final int SECONDS_PER_DEGREE = 3600;
    private static final char DEGREE_SYMBOL = '\u00B0';

    private int degrees;
    private int minutes;
    private double seconds;

  //  public static Angle add(Angle left, Angle right)
  //  {
  //      Angle add = left.getAngle + right.getAngle;
  //      return add;
  //  }
  //  
  //  public static Angle subtract(Angle left, Angle right)
  //  {
  //      
  //      Angle subtract = left.getAngle - right.getAngle;
  //      return subtract;
  //  }

    public Angle()
    {

    }

    public Angle(double FractionalDegrees)
    {

    }

    public Angle(int degrees, int minutes, double seconds)
    {

    }

    public int getDegrees()
    {
        return this.degrees;
    }

    public int getMinutes()
    {
        return this.minutes;
    }

    public double getSeconds()
    {
        return this.seconds;
    }

    public double getAngleInFractionalDegrees()
    {
 //       return this.Angle;
    }

    public void setDegrees(int degrees)
    {
        this.degrees = degrees;
    }

    public void setMinutes(int minutes)
    {
        this.minutes = minutes;
    }

    public void setSeconds(double seconds)
    {
        this.seconds = seconds;
    }

    public void setAngle(int degrees, int minutes, double seconds)
    {
        // Not sure what to put here
    }

    public void setAngleToFractionalDegrees(double fractionalDegrees)
    {

        // This doesn't work because fractionalDegrees undefined

//        this.fractionalDegrees = fractionalDegrees;
    }

}

РЕДАКТИРОВАТЬ: воткартинка класса UML:

Ответы на вопрос(1)

Ваш ответ на вопрос