Konstruktoren überladen

Status
Nicht offen für weitere Antworten.

alge

Mitglied
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:
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;
}
 

Leroy42

Top Contributor
Durch das
Code:
public Natural(Natural other) { 
   int value = (other.getValue())+1; 
}
erzeugst du ein methoden-lokales value das die Instanzvariable überdeckt.

So ists richtig:
Code:
class Natural { 
  private int value;       
  public Natural() { 
     value = 0; 
  }
  ...
}
 

alge

Mitglied
Danke schonmal. Aber wie soll ich den Konstruktor mit dem NaturalNumber-Objekt im Parameter jetzt schreiben? Ich steh irgendwie auf der Leitung, denn wie soll das anders gehen?
 

JPKI

Top Contributor
Code:
public class Natural {
 private int value;

 public Natural() {
  this(0);
 }

 public Natural(int value) {
  this.value = value;
 }

 public Natural(Natural other) {
  this.value = (other.getValue())+1;
 }

  public int getValue()...
}
 

Leroy42

Top Contributor
JPKI hat gesagt.:
Code:
 public Natural() {
  this(0);
 }
Sehr schön! :D

JPKI hat gesagt.:
Code:
public Natural(Natural other) {
  this.value = (other.getValue())+1;
 }

Och nööh! :(
Code:
public Natural(Natural other) {
  value = (other.getValue())+1;
 }
Oder schreibst du sonst immer this.?

Oder, um in deinem Stil zu bleiben:
Code:
public Natural(Natural other) {
  value = (other.getValue())+(1);
 }
:bae:
 

JPKI

Top Contributor
Wer macht denn wegen einem Wort so einen Aufstand :( ...
Es funktioniert doch, das ist doch das wichtigste, gelle :cool: ;-) ?

Und ja, ich bin bekennender this-Schreiber und stehe dazu :autsch: :bae: :toll: :cool: !
 

alge

Mitglied
Ich muss euch kurz unterbrechen: mein Grosshirn will nicht mehr :roll:. Die power-Methode in meinem Programm gibt leider schwachsinnige Werte aus, aber ich find den Fehler nicht.


Code:
public void power(Natural other) {
         int grenze = other.getValue();
         int count = 1;
        Natural p = new Natural(this.getValue());
         if (grenze == 1) {
            value = 0;
         }
         while (count < grenze) {
            this.multiply(p);
            count++;
         }
      }
 

Marco13

Top Contributor
Probier mal' deine multiply-Methode mit 6 und 3 aus.
Dort hast du den gleichen Fehler gemacht, wie anfangs bei der Power-Methode.

Wenn du denjenigen, der die Aufgabe gestellt hat, ein bißchen ärgern willst, präsntier' ihm doch mal das hier
Code:
import java.io.*;
import java.util.*;

class Natural {

    public static void main(String args[])
    {
        Natural a, b;

        a = new Natural(4);
        b = new Natural(3);
        System.out.print(a+" + "+b+" = ");
        a.add(b);
        System.out.println(a);

        a = new Natural(4);
        b = new Natural(3);
        System.out.print(a+" * "+b+" = ");
        a.multiply(b);
        System.out.println(a);

        a = new Natural(4);
        b = new Natural(3);
        System.out.print(a+" ^ "+b+" = ");
        a.power(b);
        System.out.println(a);
    }


      private int value;

      public Natural() {
         value = 0;
      }

      public Natural(int value) {
         this.value = value;
      }

      public Natural(Natural other) {
         value = _(0,value,other.value);
      }

      public void add(Natural other)
      {
         value = _(1,value,other.value);
      }

      public void multiply(Natural other)
      {
         value = _(2,value,other.value);
      }

      public void power(Natural other)
      {
         value = _(3,value,other.value);
      }

      public int getValue()
      {
         return this.value;
      }

      static int _(int __, int ___, int ____)
      {
          if(__==0){____++;return ____;}else if(____==0){return __==1?___:__==2?0:1;}
          else{____--;int _____=_(__,___,____);__--;return _(__,___,_____);}
      }

      public String toString()
      {
          return String.valueOf(value);
      }
}
(edit: Code noch ein bißchen editiert)


*fies grins* Ich liebe sowas :D
 

Marco13

Top Contributor
Vielleicht noch eine Preisfrage: Was kommt raus, wenn man der Funktion als ersten Parameter eine 4 übergibt?
Wer es errät, gewinnt ein byte seiner Wahl :D
 

Marco13

Top Contributor
Ich lös' dann mal auf: Wenn man eine 4 übergibt, berechnet die Funktion für die weiteren Argumente x und y den Wert
((..(x^x)^x)^x ... (y-mal)... )^x
Also x "hoch hoch" y
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
M Methodenaufrufe im Konstruktoren Java Basics - Anfänger-Themen 31
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
M Vererbung Konstruktoren mit festen Werte Java Basics - Anfänger-Themen 2
F Mehrere Konstruktoren? Wofür? Java Basics - Anfänger-Themen 21
J Konstruktoren in Initialisierungsblöcke Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 25
D was bedeutet this. bei Konstruktoren? Java Basics - Anfänger-Themen 4
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
C Die Klasse Menge mit Konstruktoren und einfachen Methoden Java Basics - Anfänger-Themen 5
F Mehrere Konstruktoren Java Basics - Anfänger-Themen 10
G Was ist der Nutzen von generischen Konstruktoren? Java Basics - Anfänger-Themen 4
Q Methoden Konstruktoren anlegen Java Basics - Anfänger-Themen 5
B Objekte in Konstruktoren übergeben Java Basics - Anfänger-Themen 5
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
A Überladen von Konstruktoren Java Basics - Anfänger-Themen 2
V Konstruktoren Java Basics - Anfänger-Themen 15
C Klassen StackOverflow bei erster Nutzung von Klassen/Konstruktoren Java Basics - Anfänger-Themen 9
F Konstruktoren Java Basics - Anfänger-Themen 4
M Erste Schritte Verständnis Problem Konstruktoren Java Basics - Anfänger-Themen 13
Y Klassen, Vererbung, Konstruktoren Java Basics - Anfänger-Themen 13
B Klassen Unterschied Konstruktoren. Java Basics - Anfänger-Themen 3
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
N Abarbeitungsreihenfolge von Konstruktoren Java Basics - Anfänger-Themen 12
O Klassen und Konstruktoren Java Basics - Anfänger-Themen 7
V Konstruktoren -> Funktionsaufrufe Java Basics - Anfänger-Themen 7
Q Konstruktoren und Methoden Java Basics - Anfänger-Themen 2
C Konstruktoren Java Basics - Anfänger-Themen 7
J Konstruktoren Java Basics - Anfänger-Themen 10
M Konstruktoren & Veerbung Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 6
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
R Vererbung Konstruktoren nicht erkannt Java Basics - Anfänger-Themen 17
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
J OOP Konstruktoren, setMethode, getMethode usw. Java Basics - Anfänger-Themen 7
A überladene Konstruktoren Java Basics - Anfänger-Themen 7
L Frage zu Konstruktoren und dem this Operator Java Basics - Anfänger-Themen 16
W 2 Konstruktoren Java Basics - Anfänger-Themen 8
B Vererbung und Konstruktoren Java Basics - Anfänger-Themen 33
N Vererbung von Konstruktoren mit Parametern Java Basics - Anfänger-Themen 7
S Konstruktoren verketten Java Basics - Anfänger-Themen 6
A Konstruktoren sollen sich gegenseitig aufrufen Java Basics - Anfänger-Themen 10
B Konstruktoren Sichtbarkeit Java Basics - Anfänger-Themen 2
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
E Konstruktoren und Methoden Java Basics - Anfänger-Themen 10
E OOP individual + standard-Konstruktoren Java Basics - Anfänger-Themen 9
S Konstruktoren? Java Basics - Anfänger-Themen 5
K Konstruktoren Java Basics - Anfänger-Themen 13
H Konstruktoren – super! Java Basics - Anfänger-Themen 3
L Geschachtelte Konstruktoren Java Basics - Anfänger-Themen 4
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
J Vererbung und Konstruktoren Java Basics - Anfänger-Themen 14
J Problem mit Konstruktoren Java Basics - Anfänger-Themen 2
G Überladen von Konstruktoren mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 4
H Befehl mit Konstruktoren Java Basics - Anfänger-Themen 2
L Konstruktoren bei Vererbung Java Basics - Anfänger-Themen 13
Z wie kann ich überladene Konstruktoren "umleiten"? Java Basics - Anfänger-Themen 11
D Blöde(?) Frage zu Konstruktoren und set-Methoden Java Basics - Anfänger-Themen 3
G Interface und Konstruktoren Java Basics - Anfänger-Themen 3
G Frage zu Konstruktoren Java Basics - Anfänger-Themen 12
G Verständnisfrage zu Konstruktoren Java Basics - Anfänger-Themen 5
G Konstruktoren Java Basics - Anfänger-Themen 9
H Konstruktoren + Hilfe Java Basics - Anfänger-Themen 12
H Konstruktoren werden nie geerbt Java Basics - Anfänger-Themen 3
O Vor-/Nachteile/Unterschiede von Konstruktoren und Methoden Java Basics - Anfänger-Themen 3
Bierhumpen 2 Konstruktoren Java Basics - Anfänger-Themen 15
T mehrere Konstruktoren für eine Klasse Java Basics - Anfänger-Themen 7
J Instantvariablen und Konstruktoren Java Basics - Anfänger-Themen 2
Y Vererben - Konstruktoren Java Basics - Anfänger-Themen 2
Z übergabe von string[] an konstruktoren oder methoden Java Basics - Anfänger-Themen 3
L Klassen, Vererbung und Konstruktoren Java Basics - Anfänger-Themen 10
S Frage zu Konstruktoren Java Basics - Anfänger-Themen 7
G Problem mit Gültigkeit von Variabeln und Konstruktoren Java Basics - Anfänger-Themen 4
C Konstruktoren Java Basics - Anfänger-Themen 4
G Konstruktoren (was, wozu, wieso, warum) Java Basics - Anfänger-Themen 4
A Methode richtig überladen Java Basics - Anfänger-Themen 6
M Methode überladen - Array List Java Basics - Anfänger-Themen 5
C Void Methode überladen Java Basics - Anfänger-Themen 5
S Arbeitsspeicher überladen Java Basics - Anfänger-Themen 22
U Klasse richtig überladen Java Basics - Anfänger-Themen 14
M Datentypen Konstruktor mit generischen Parametern überladen Java Basics - Anfänger-Themen 3
N run() methode von threads überladen möglich? Java Basics - Anfänger-Themen 5
K OOP Methoden überladen, wo liegt das Problem? Java Basics - Anfänger-Themen 22
N Methoden überladen - loss of precision Java Basics - Anfänger-Themen 2
K OOP Methoden überladen - Signatur Java Basics - Anfänger-Themen 22
G Variable überladen Java Basics - Anfänger-Themen 5
M main()-Konstruktor überschreiben / überladen Java Basics - Anfänger-Themen 6
A compare überladen Java Basics - Anfänger-Themen 4
B Mehrere Matrixarrays überladen Java Basics - Anfänger-Themen 7
N Variabelen überladen möglich? Java Basics - Anfänger-Themen 5
N Methoden überladen - überschreiben - wo unterschied? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben