Видеозаписи урока:

Ниже приведен пример класса описывающего натуральное число:

public class NaturalValue {
    int value;

    NaturalValue(int value) {
        if (value < 1) {
            this.value = 1;
        } else {
            this.value = value;
        }
    }
    
    NaturalValue() {
        this.value = 1;
    }

    int getValue() {
        // это так называемый getter, в java принято извне (из main) ВЕЖЛИВО узнавать значения полей
        // т.е. через такие (тривиальные) функции
        // getter от слова get = получить = узнать значение поля (соответственно тип результата = типу поля)
        // называется он всегда getSomeFieldName где SomeFieldName - название поля (с большой буквы)
        return value;
    }

    void setValue(int value) {
        // это так называемый setter, в java принято извне (из main) ВЕЖЛИВО МЕНЯТЬ значения полей
        // т.е. через такие (тривиальные) функции
        // setter от слова set = установить значение поля (соответственно результата нет - void)
        // называется он всегда setSomeFieldName где SomeFieldName - название поля (с большой буквы)
        this.value = value;
        // в частности такой способ позволяет проконтролировать что за значение нам подсунили и поправить его:
        if (value < 1) {
            this.value = 1;
        } else {
            this.value = value;
        }
    }

    // @Override - это указание что не мы не просто объявляем новый метод,
    // а ПЕРЕОПРЕДЕЛЯЕМ метод который есть в более базовом классе
    // в Java во всех классах есть toString(), именно он определяет что будет выведено
    // если подставить объект x в System.out.println(x);
    // поэтому ПЕРЕОПРЕДЕЛИВ этот метод - мы явно скажем как преобразовать объект в строку
    // т.е. как представить объект в приятном человеческому глазу виде
    @Override
    public String toString() {
        return "value=" + this.value + "";
    }
}

Поиск наибольшего общего делителя

Как найти НОД двух чисел чтобы сократить рациональную дробь? Проще всего это сделать через Алгоритм Евклида:

1) Большее число делим на меньшее.

2) Если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла).

3) Если есть остаток, то большее число заменяем на остаток от деления.

4) Переходим к пункту 1.

Задание

В https://mdl.sch239.net/login/index.php выполнить задание про создание класса описывающего рациональную дробь.