Чтобы получить синтаксис Int sum = i1.plus(i2)
, вам нужен метод, который:
- - это экземплярный (т.е. нестатический) метод
- принимает
Int
в качестве параметра
- возвращает
Int
В частности, plus
должен вычислить сумму 2 Int
s и вернуть новый Int
.
Кроме того, вам придется переопределить метод toString
для Int
, чтобы он возвращал строковое представление обернутого int
при печати.
Говоря о переносимом int
, ваш класс Int
, похоже, не имеет базового поля int
, в котором хранится int
, переданное в конструктор. В настоящее время вы просто игнорируете все, что передается в конструктор, что не кажется хорошей идеей.
Исходя из вышеизложенного, Int
должен выглядеть примерно так:
class Int {
private int wrapped;
public Int(int wrapped) {
this.wrapped = wrapped;
}
@Override
public String toString() {
return Integer.toString(wrapped);
}
public Int plus(Int other) {
int sum = this.wrapped + other.wrapped;
return new Int(sum);
}
}