Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich bin gerade etwas durch den Tüdel und wollte mal schnell nachfragen:
Ich habe eine Methode A erstellt, die mir einen Integer-Wert zurückliefert.
Auf diese Methode soll (innerhalb derselben Klasse) eine zweite, zu erstellende Boolean-Methode zugreifen die folgendes macht:
Wenn der Integer-Wert von Methode A kleiner als 0 ist, soll als Rückgabewert "false" erfolgen. Ist der Integer-Wert von Methode A größer oder gleich 0, soll "true" erfolgen.
Das müsste doch eigentlich ganz einfach sein? Aber ich stehe gerade auf dem Schlauch...
- Methode A und aufrufen und dabei den Rückgabewert einer entsprechenden Variable zuweisen
- dann diese Variable an die Methode B übergeben für die entsprechende Prüfung und Ausgabe
na fast
Du musst methodeA so aufrufen, wie sie deklariert ist ... also mit allen Parametern aus der Signatur !
Das diese Werte natürlich in methodeB bekannt sein müssen (ggf. auch dorthin übergeben werden müssen), ist eine andere Frage !
Entschuldige bitte, dass ich da noch mal nachfragen muss: Die Signatur ist doch der Name sowie die Parameterliste (tatsächlich habe ich im Programm noch eine zweite Methode A, jedoch mit anderen Parametern (String), dessen Übergabewert auch von Methode B aufgenommen werden soll), stimmts?
Ich will doch nur den Return-Wert von Methode A (int abc) in der Methode B weiterverarbeiten.
Die Signatur ist doch der Name sowie die Parameterliste (tatsächlich habe ich im Programm noch eine zweite Methode A, jedoch mit anderen Parametern (String), dessen Übergabewert auch von Methode B aufgenommen werden soll)
MethodeA ist der Name der Methode - sicher kein Guter, aber immerhin der Name ( int[] A, int i ) ist dann die Signatur - sie besteht also der Anzahl, der Namen und der Datentypen der Parameter und muss als solches immer eindeutig sein !
Also würden Signaturen wie ( int[] A ), ( int i ), ( int[] A, String x ) und sogar ( int[] A, String i ) auch gehen, aber bspw. ( int[] A, int NN ) nicht !!
Der Return-Code hat damit erstmal nichts zu tun und gehört nicht zur Sigantur!
Will heißen, das folgendes NICHT geht:
Java:
int MethodeA ( int[] A, int i ) ...
String MethodeA ( int[] A, int i ) ...
Ok, danke für die Klarstellung. Das war sehr verständlich.
Java:
int MethodeA ( int[] A, int i ) ...
int MethodeA ( String[] A, String i ) ...
sind meine A-Methoden, jeweils mit einem Rückgabewert abc. Diese Methoden werden überladen.
Das funktioniert auch alles soweit einwandfrei.
Nun möchte ich jedoch eine neue boolean-Methode B erstellen, die sich am Rückgabewert der Methode A orientiert (wie beschrieben: Wenn Rückgabewert größer 0, dann true, wenn kleiner 0, dann false) und entsprechend ihrerseits einen Rückgabewert true/false ausgibt.
Ich frage ich jedoch, was diese neue Methode B für Parameter braucht und wieso bei dem Code in #5 die MethodeA Parameter fordert (bzw. wie diese lauten sollen).
Ich frage ich jedoch, was diese neue Methode B für Parameter braucht und wieso bei dem Code in #5 die MethodeA Parameter fordert (bzw. wie diese lauten sollen).
Weil die MethodeA von dir so deklariert ist das Parameter benötigt werden! Wenn du keine angibst wird sich der Compiler beschweren, ganz einfach
Die Frage ist nun woher kommen diese Parameter? Gibt es Instanzattribute oder lokale Variablen (in Methode B) welche du als Parameter übergeben kannst? Wenn ja dann braucht MethodeB nicht unbedingt Parameter. Gibt es aber keine Instanzattribute bzw. lokale Variablen dann sollte Methode B Parameter übergeben bekommen, welche sie an Methode A weiterreichen kann.
Ja, in Methode A werden einige Variablen erstellt. Es gibt auch Klassenvariablen.
Wie stehen die von MethodeA an MethodeB übergebenen Parameter im Zusammenhang mit dem Rückgabewert von MethodeA? Also wofür "braucht" MethodeB die übergebenen Parameter von MethodeA?
Wie stehen die von MethodeA an MethodeB übergebenen Parameter im Zusammenhang mit dem Rückgabewert von MethodeA? Also wofür "braucht" MethodeB die übergebenen Parameter von MethodeA?
Wo übergibt MethodeA etwas an MethodeB? Ich dachte du willst von MethodeB deine Methode A aufrufen?
Es geht ganz einfach darum, dass du dir klar wirst das deine MethodeA Parameter erwartet und du wissen musst woher du sie bekommst!
Java:
public void MethodeB() {
int result = MethodeA(......); // hier müssen Parameter übergeben werden. es ist dein Code du solltest wissen woher du die passenden Parameter bekommen kannst!
return result >= 0;
}
MethodeB ruft Methode A auf, richtig. Aber ich möchte doch, dass MethodeB mit dem return-Wert von MethodeA arbeitet. Die Methode A ist ja vor der Methode B durchlaufen worden und hat einen Return-Wert, den ich aufgreifen und weiterverarbeiten möchte. Wofür brauche ich dann die Parameter der Methode A?
Weil laut Methodensignatur von MethodeA Parameter definiert sind! Sprich wenn du MethodeA aufrufen willst musst du an diese Methode Parameter übergeben.
Du kannst nicht einfach eine Methode (mit definierten Parameter) aufrufen und nichts übergeben -> zu 99,9% arbeitet die Methode mit diesen Parametern. Wenn du nichts übergibt wird die Methode nicht funktionieren
Außerdem: wir wissen hier nicht, was deine Methode A macht !!
Falls die Parameter innerhalb der Methode nicht benötigt werden sollten, warum deklarierst Du sie dann ??
Und hier wurde jetzt schon mehrfach geschrieben, dass die Rückgabewerte prinzipiell nichts mit den übergebenen Parametern zu tun haben (außer ggf. für die Berechnung zur Rückgabewertes) !!