2016-11-29 4 views
-11

Also im Moment ich habe es geschafft,Fest auf eine Setter-Methode zu schaffen

public int getDivisor() { 
    return this.divisor; 
} 

eine Getter-Methode mit dem folgenden Code zu erstellen, wird zurückkehren 2.

Ich bin stecken einen Setter auf die Schaffung Methode für mein Projekt. Die Frage ist: Schreiben Sie eine öffentliche Setter-Methode für Divisor, die Divisor auf den Wert des Arguments setzt. Es kann nicht 0 sein, wirklich bin auf dieser Frage fest. Kann mir bitte jemand helfen? Sehr geschätzt.

Ich habe hinzugefügt jetzt die folgende Methode

public void setValue(int number) { 
    if(number == 0) 
     this.divisor = number; 
} 

für die Setter-Nachricht.

Nach Eingabe einer Nachricht divisor.SetValue(); kommt es zurück den Fehler kann Symbol - Methode SetValue() nicht finden. Mache ich etwas falsch?

+1

Nun, es wird nur einen Wert setzen, nicht etwas zurückgeben, damit Sie wissen, dass es "void" sein sollte. Sie benötigen eine Ganzzahl als Argument und der Name könnte "setValue" sein, also kann 'setValue (int-Nummer)' die Signatur sein. Sie möchten den Wert des Divisors auf diese Zahl setzen, also benötigen Sie 'this.divisor = number;'.Aber Sie müssen sicherstellen, dass die Zahl nicht 0 ist, und das ist, wo das schöne 'if (Nummer == 0)' praktisch ist. – Gendarme

+1

Bitte zeigen Sie immer Ihren besten Treu und Glauben versuchen, Ihr Problem mit Ihrer Frage zu lösen. Sonst weiß jemand, welche Probleme Sie haben könnten? –

+0

Ich habe meinen Post bearbeitet, bekomme aber immer noch einen Fehler? – Display286

Antwort

-1

Ein Setter-Methode ist nur eine Methode, die den Wert einer Variablen zu, dass ein Argument setzt, das durch das Verfahren typischerweise vom Typ void übergeben wird, da Sie keinen Wert

public void setValue(int value){ 
    if(value != 0) this.divisor = value; 
} 
+0

Was ist mit der Tatsache, dass "Wert" nicht "0" sein kann ? – Gendarme

+0

Entschuldigung, ich habe vergessen, in diesem Teil hinzuzufügen. – isema

+1

glauben Sie, ignorieren Sie einfach die fehlerhafte Eingabe ist in Ordnung? –

0

Erste Rückkehr Wie du in den Kommentaren bemerkst, machst du das Gegenteil von dem, was du tun willst. Ich würde vorschlagen, dass Sie einen IllegalArgumentException werfen konnte, wenn number 0 ist wie folgt:

public void setValue(int number) { 
    if(number == 0) 
     throw new IllegalArgumentException("The value 0 is not valid"); 
    this.divisor = number; 
} 

Was Ihre Frage zu Ihrer Methode aufrufen:

divisor.SetValue();

Wie in den Kommentaren darauf hingewiesen, ist die Methode Signatur empfindlich Fall so S etValue wird nicht funktionieren. Außerdem benötigt die Methode einen Integer-Parameter, Sie haben keine Parameter angegeben. Sie sollten die Methode, wie diese stattdessen aufrufen:

divisor.setValue(123); //Any integer parameter is fine, just an example

-1

Gendarme Antworten von der Bewertungsseite hat mir geholfen, das Problem gelöst.

public void setValue(int number) { 
    if(number == 0) 
     this.divisor = number; 
} 
+0

Dies ist immer noch falsch? Deine Hausaufgabe sagt "Es kann nicht 0 sein" und was machst du hier? ... – Tom

0

Verwenden Sie einfach den != Betreiber, die nicht gleich bedeutet, auf dem Code

Just do:

public void setValue(int number) { 

    if (number != 0) 
     this.divisor = number; 
    } 
} 

Diese überprüft, ob der angegebene Wert nicht gleich 0 ist, und Dann wird der Divisor auf die Nummer gesetzt.

0

setValue() und SetValue() sind zwei verschiedene Dinge. Namen sind Groß- und Kleinschreibung. Deshalb konnte der Compiler setValue() seit der Eingabe SetValue() nicht finden!

Verwandte Themen