Реализуйте класс Int, который выполняет объектно-ориентированные операции с числом.
● методы increment(), увеличивающий на 1 и decrement() уменьшающий значение на 1,
● методы сложения add(Int n) и вычитания substract(Int n)
● метод toString()
По умолчанию, класс инициализируется как «0»
Выполните наименьшее количество операций, чтобы преобразовать из числа 0 в число 1000. (менее чем за 50)
Программа должна быть чисто объектно-ориентированной. Нельзя использовать оператор присваивания.
public class Main
{
private int one;
public int decrement() {
return --one;
}
public int increment() {
return ++one;
}
//методы increment(), увеличивающий на 1 и decrement() уменьшающий значение на 1
public int add(int n) {
if (n == 0) {
return one;
}
else {
increment();
return add(n - 1);
}
}
public int substract(int n) {
if (n == 0) {
return one;
}
//методы сложения add(Int n) и вычитания substract(Int n)
else {
decrement();
return substract(n - 1);
}
}
public String toString() { //метод toString()
return "Is string: " + one;
}
public static void main(String[] args) {
Main numObj = new Main();
System.out.println(numObj.increment());
System.out.println(numObj.decrement());
System.out.println(numObj.add(50));
// System.out.println(numObj.add(numObj.myNum));
System.out.println(numObj.substract(50));
// System.out.println(numObj.substract(numObj.myNum));
while (numObj.add(20) < 1000) {
}
System.out.println(numObj.one);
System.out.println(numObj.toString());
}
}
Если без добавления equals, то хз. Если с ним, то всё так же, просто везде использовать свой класс. Вызывать equals вместо == и т.д. И возвращать везде тоже либо свой класс (return this если надо текущий объект менять, а не создавать новые), либо void.
Если я правильно понял, вам надо создать собственный целочисленный тип (аналог Int). А вы просто создали переменную в классе Main и гоняете её туда-сюда методами этого же класса
Либо имелось ввиду просто сделать обёртку класса Int Если так, то всё просто.
Что-то типа этого: MyInt.java
public class MyInt
{
private int val = 0;
public int decrement() {
return --val;
}
public int increment() {
return ++val;
}
public int add(int n) {
if (n > 0) {
val += n;
}
return val;
}
public int substract(int n) {
if (n < 0) {
val -= n;
}
return val;
}
@Override
public String toString() {
return "Is string: " + val;
}
}
А потом просто создать экземпляр этого класса и с ним работать.