Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen?

Das meinst Du bitte mit Methode um Werte erhöhen?

Meinst Du das eine Methode wiederholt mit einem Parameter aufgerufen werden soll, der sich immer um 1 erhöht?
Dann ja: Das wäre mit einer Schleife (Egal ob for, for-each, while oder do while) möglich.

Aber es erhöht sich dann natürlich keine Methode. Du erhöhst eine Variable und diese nutzt Du als Parameter bei einem Methodenaufruf.
 
Das meinst Du bitte mit Methode um Werte erhöhen?

Meinst Du das eine Methode wiederholt mit einem Parameter aufgerufen werden soll, der sich immer um 1 erhöht?
Dann ja: Das wäre mit einer Schleife (Egal ob for, for-each, while oder do while) möglich.

Aber es erhöht sich dann natürlich keine Methode. Du erhöhst eine Variable und diese nutzt Du als Parameter bei einem Methodenaufruf.
Ich meine, dass eine Methode x den Wert von Methode y um 1 erhöht und daraufhin eine entsprechende Reaktion liefert

Edit: Ich habe mich verlesen, nicht die Methode soll erhöht werden, sondern ein Attribut 🙂
 
Kannst Du ein Beispiel nennen für Deine Methode y, die zeigt, was da geändert werden soll. Eien Methode hat keine Attribute, die man ändern könnte.

Als Entwickler gibt man einiges vor bei einer Methode und das ist fest. So eine Methode sieht also so aus:
Java:
public int someName(SomeType param1, SomeType2 param2, ...) {
    // Implementation z.B.
    SomeType variable;
    
    return result;
}
Die Methode steht so fest:
- Es gibt eine Sichtbarkeit (hier "public")
- Es gibt einen Rückgabetyp (hie "int")
- Die Methode hat einen Namen ("someName")
- Die Methode hat Parameter (hier param1 und param2 - die ... sind keine Java Syntax und sollen hier nur anzeigen, dass es beliebig viele Parameter geben kann. Aber es können auch keine Parameter angegeben werden. => Das ist dann die Eingabe, die man bei einem Aufruf der Methode vorgeben MUSS. Also wenn da 2 Parameter vorhanden sind, dann muss man bei einem Aufruf auch für beide einen Wert angeben!
- Dann hat die Methode irgendwelche Implementationen. Im Rahmen dieser mag es auch lokale Variablen geben. Diese kann man aber nicht von außen setzen oder so. (Aber natürlich kann es Code geben, der da den Wert eines Parameters nutzt um den Wert der lokalen Variable zu setzen. Das ist dann aber Part der Implementation. Von außen setzt man nur den Parameter, nicht die lokale Variable!)
- Und natürlich gibt die Methode etwas zurück, wenn eine Rückgabetyp gesetzt ist, der nicht void ist.

Und von Außen interessieren mich die Implementationsdetails nicht! Darauf habe ich keinen Einfluss und selbst wenn es möglich wäre: Darauf sollte ich nie Einfluss nehmen. Denn wenn ich das an irgendwelchen Stellen mache, dann würde es ja problematisch, wenn jemand die Methode ändert.

Hat das evtl. etwas geholfen?
 
Evtl. meint Attribut ja auch Attribut einer Klasse. Du hast also in der Klasse eine Instanzvariable (oft auch als Feld bezeichnet). Dieses kann ggf. über einen sogenannten Setter verändert werden:
Java:
public class Test {
    private int someValue;
    
    public void setSomeValue(int someValue) {
        this.someValue = someValue;
    }
}

Hier würde man dann in einer anderen Methode z,B. den Setter aufrufen und diesem dann als Parameter den neuen Wert mitgeben.
Das ändert dann natürlich die Instanzvariable. Aber das ist ein Detail, das so nicht einmal interessant ist. Wie in Test "someValue" gespeichert wird, ist mir egal. Wichtig ist nur das Interface - ich habe ggf. Setter und Getter um den Wert zu setzen und zu lesen. Aber wie der Wert intern abgebildet ist, spielt keine Rolle um dies zu nutzen.

Das ist eine Abstraktion. Wenn Du Auto fährst, dann hast Du ein Lenkrad. Das kannst Du drehen. Wie das dann umgesetzt wird, ist dir doch egal:
Das kann irgend eine Mechanik sein. Evtl. werden auch elektrische Impulse gebildet und die werden dann irgendwie erst an den Rädern abgebildet. Das sind Implementationsdetails. Die interessieren Dich aber nicht wirklich. Du willst nur, dass das Auto seinen "Vertrag" erfüllt: Wenn Du nach Rechts lenkst, dann soll das Auto (entsprechend des Einschlagens) auch nach Rechts fahren.
 
Kannst Du ein Beispiel nennen für Deine Methode y, die zeigt, was da geändert werden soll. Eien Methode hat keine Attribute, die man ändern könnte.

Als Entwickler gibt man einiges vor bei einer Methode und das ist fest. So eine Methode sieht also so aus:
Java:
public int someName(SomeType param1, SomeType2 param2, ...) {
    // Implementation z.B.
    SomeType variable;
   
    return result;
}
Die Methode steht so fest:
- Es gibt eine Sichtbarkeit (hier "public")
- Es gibt einen Rückgabetyp (hie "int")
- Die Methode hat einen Namen ("someName")
- Die Methode hat Parameter (hier param1 und param2 - die ... sind keine Java Syntax und sollen hier nur anzeigen, dass es beliebig viele Parameter geben kann. Aber es können auch keine Parameter angegeben werden. => Das ist dann die Eingabe, die man bei einem Aufruf der Methode vorgeben MUSS. Also wenn da 2 Parameter vorhanden sind, dann muss man bei einem Aufruf auch für beide einen Wert angeben!
- Dann hat die Methode irgendwelche Implementationen. Im Rahmen dieser mag es auch lokale Variablen geben. Diese kann man aber nicht von außen setzen oder so. (Aber natürlich kann es Code geben, der da den Wert eines Parameters nutzt um den Wert der lokalen Variable zu setzen. Das ist dann aber Part der Implementation. Von außen setzt man nur den Parameter, nicht die lokale Variable!)
- Und natürlich gibt die Methode etwas zurück, wenn eine Rückgabetyp gesetzt ist, der nicht void ist.

Und von Außen interessieren mich die Implementationsdetails nicht! Darauf habe ich keinen Einfluss und selbst wenn es möglich wäre: Darauf sollte ich nie Einfluss nehmen. Denn wenn ich das an irgendwelchen Stellen mache, dann würde es ja problematisch, wenn jemand die Methode ändert.

Hat das evtl. etwas geholfen?
Danke für die ausführliche Antwort. Bei der Methode handelt es sich um eine Move-Methode (mit Rückgabetyp string) und bei dem Attribut um ein Distanz-Attribut. Das Ziel ist, dass sich beim Durchlauf der Methode Move das Attribut Distanz um 1 erhöht. Als Reaktion darauf soll ein string zurückgeliefert werden. Da sollte eine for-Schleife Sinn machen, richtig?
 

Zurück
Oben