Hallo zusammen. Schlage mich grade mit folgender Aufgabe rum:
"Schreiben Sie eine Klasse NaturalNumber (Naturliche Zahl), die wie folgt aussieht:
class NaturalNumber {
public NaturalNumber()
public NaturalNumber(NaturalNumber other)
public int getValue()
public void add(NaturalNumber other)
public void multiply(NaturalNumber other)
public void power(NaturalNumber other)
private int value;
}
Der Konstruktor: public NaturalNumber() erzeugt ein NaturalNumber-Objekt mit value=0.
Der Konstruktor: public NaturalNumber(NaturalNumber other) erzeugt ein NaturalNumber-Objekt mit value=other.getValue()+1. Die Methoden add, multiply, und power (addieren, multiplizieren, potenzieren) sollen
zur Berechnung nur die Operatoren ++ und -- verwenden. Schreiben Sie ebenfalls
eine main-Methode, die die verschiedenen Methoden der Klasse NaturalNumber testet."
Allerdings scheitert daß bei mir an der Anlage der Konstruktoren, denn wenn ich die teste, wird die Instanzvariable value immer mit 0 ausgegeben, auch bei Objekten wo das nicht sein kann. Warum das? Danke.
Mein Code:
"Schreiben Sie eine Klasse NaturalNumber (Naturliche Zahl), die wie folgt aussieht:
class NaturalNumber {
public NaturalNumber()
public NaturalNumber(NaturalNumber other)
public int getValue()
public void add(NaturalNumber other)
public void multiply(NaturalNumber other)
public void power(NaturalNumber other)
private int value;
}
Der Konstruktor: public NaturalNumber() erzeugt ein NaturalNumber-Objekt mit value=0.
Der Konstruktor: public NaturalNumber(NaturalNumber other) erzeugt ein NaturalNumber-Objekt mit value=other.getValue()+1. Die Methoden add, multiply, und power (addieren, multiplizieren, potenzieren) sollen
zur Berechnung nur die Operatoren ++ und -- verwenden. Schreiben Sie ebenfalls
eine main-Methode, die die verschiedenen Methoden der Klasse NaturalNumber testet."
Allerdings scheitert daß bei mir an der Anlage der Konstruktoren, denn wenn ich die teste, wird die Instanzvariable value immer mit 0 ausgegeben, auch bei Objekten wo das nicht sein kann. Warum das? Danke.
Mein Code:
Code:
import java.io.*;
import java.util.*;
class Natural {
public Natural() {
int value = 0;
}
public Natural(Natural other) {
int value = (other.getValue())+1;
}
public int getValue() {
return this.value;
}
public void add(Natural other) {
int grenze = other.getValue();
int count = 0;
while (count < grenze) {
value++;
count++;
}
}
public void multiply(Natural other) {
int grenze = other.getValue();
int count = 1;
while (count < grenze) {
this.add(this);
count++;
}
}
public void power(Natural other) {
int grenze = other.getValue();
int count = 1;
if (grenze == 1) {
value = 0;
}
while (count < grenze) {
this.multiply(this);
}
}
private int value;
}