Methoden Methoden nacheinander ausführen

chuvak

Aktives Mitglied
Ich habe mehrere Methoden innerhalb einer Klasse: methode1(), methode2(), methode3()...
Sie sollen alle nacheinander aufgerufen werden. Dies habe ich zuerst so gelöst:

Java:
public void methode1()
{
   ...
   methode2();
}
public void methode2()
{
   ...
   methode3();
}
public void methode3()
{
   ...
}
Das funktioniert zwar, finde ich aber nicht so schön.

Dann hab ich das versucht:
Java:
public void start()
{
   if(methode1())
   {
      if(methode2())
      {
         methode3();
      }
   }
}

public Boolean methode1()
{
   ...
   return true;
}
public Boolean methode2()
{
   ...
   return true;
}
public Boolean methode3()
{
   ...
   return true;
}
Das Problem hier war, dass ich bei einigen Methoden andere Rückgabewerte (z.B. Integer) für weitere Verarbeitungen brauchte.

Gibt es eine andere elegante Lösung, um Methode 2 auszuführen, wenn Methode 1 abgeschlossen ist und Methode 3 erst dann, wenn auch die 2. Methode fertig ist?
 
Wird die 2. denn erst dann ausgeführt, wenn die 1. erfolgreich abgearbeitet wurde?
Da befinden sich nämlich Schleifen (DB-Abfragen), die etwas Zeit in anspruch nehmen könnten...
 
Das kommt drauf an, was du darin machst. Wenn ein neuer Thread gestartet wird, der die Abfrage aufführt, dann nicht. Das wirst du mit dem Rückgabewert aber auch nicht unterbinden können.
Das musst du testen, oder eventuell in der API der Lib, die du verwendest nachlesen.
 
Hallo Cola Colin.

Bin ganz neu hier und habe noch keinen Funken von Java. Bin aber bereit mich da etwas reinzuhängen und habe auch schon ein Bespiel von meiner Arbeit. Derzeit stehe ich vor der einfachen Aufgabe (Datei umbenennen, entzippen, eine Teil ersetzen und wieder zippen) mehrer Methoden hintereinander ablaufen zulassen und hätte da noch eine Verständnisfrage. Die einzelnen Teile habe ich schon vorliegen und diese funktionieren einzeln auch soweit jedoch nicht hintereinander. Da reicht mein Verständnis noch nicht. Wie kann ich die einzelnen Java's zusammenhängen. Deine Erklärung ist mir noch nicht ganz verständlich. Kann ich die einzelnen Teil so belassen und über eine eigene Methode (Datei) zusammenfügen und wie muss ich das genau anstellen?

Vielen Dank für deine Hilfe
Oferl
 
Die Fragestellung hier hat ersteinmal nichts mit Deinem Problem zu tun, deshalb sind die Erklärungen hier für Dein Problem eigentlich irrelevant ;-)

Allgemein hilft da Grundlagen lernen, da muss jeder durch.

Soviel Code sollte das ja nicht sein, warum schreibst/kopierst Du nicht die Methoden der einzelnen Klassen in eine Klasse - gehört ja auch irgendwie zusammen.

Ansonsten gibt es statische Klassenmethoden, die direkt über die Klasse aufgerufen werden und es gibt Instanzmethoden, die nur an einem Objekt einer Klasse aufgerufen werden können.
Man könnte also auch eine neue Klasse erstellen, die Objekte der einzelnen Klassen erzeugt (falls es sich um nicht statisch Methoden handelt) und daran deren Methoden aufruft.

Vielmehr - denke ich - kann man bei der vorliegenden Info nicht dazu sagen.
 
Das verstehe ich nicht ganz. Hier geht es doch um Methoden nacheinander ausführen ????
Für mich ist derzeit egal ob das viel Code ist oder nicht. Ich will auch kein fertig programmiertes Beispiel aber ein kleiner Tipp wo ich Info dazu finde würde auch hilfreich sein.

Mir ist auch klar, dass ich zum großen Teil durch try&error zum Ziel komme. Wie sollte ich aber das anstellen, wenn ich nicht durch Fragen und Antworten zum Ziel kommen. So haben sicher die meisten angefangen. 😳
 
Das verstehe ich nicht ganz. Hier geht es doch um Methoden nacheinander ausführen ????
Grundsätzlich ja. Und wie man das grundsätzlich macht steht ja auch hier. Einfach nacheinander aufrufen (Wobei die Frage ob eigenständige Threads in dem Methoden starten noch offen ist):
Java:
methode1();
methode2();
Es wird zuerst Methode methode1() und anschließend methode2() aufgerufen - war jetzt keine Hexerei.

Dein Problem ist aber, dass Du Deinen Code auf mehrere Klassen verteilt hast und daher nicht einfach so Methoden nacheinander aufrufen kannst. Dein Problem ist also der verteilte/zerstückelte Code bzw. wie man aus einer Klasse auf Methoden einer anderen Klasse oder eines anderen Objekts zugreift.

Daher mein Vorschlag einfach allen Code in eine Klasse zu kopieren, dann kann man z.B. in der static main(String[]) alle Methoden nacheinander aufrufen.

Oder aber in einer Klasse Objekte der anderen Klassen erzeugen und daran Methoden aufrufen. Eventuell sind es ja auch alles statische Methoden und man kann sich die Objekterzeugung sparen - aber ich keine Deinen Code ja nicht.

Grundstätzlich gibt es drei Arten eine Methode aufzurufen:
- die Methode ist Bestandteil der Klasse bzw. des Objekts:
methode();
- die Methode ist eine Methode eines anderen Objekts:
anderesObjekt.methode();
- die Methode ist eine statische Methode einer anderen Klasse:
AndereKlasse.methode();

Findet man eigentlich in jedem Grundlagenbuch
 
Mir ist auch klar, dass ich zum großen Teil durch try&error zum Ziel komme. Wie sollte ich aber das anstellen, wenn ich nicht durch Fragen und Antworten zum Ziel kommen.

Ein Grundlagenbuch lesen? ???:L
Sicherlich zielführender, als in der Mitte anzufangen und rumzuprobieren.
Die Kerngedanken der Objektorientierung erschliessen sich meines Erachtens nicht über ausprobieren.
 
Vor allem solltest du die Sprache erst einmal richtig lernen, bevor du anfängst ein Programm auf deiner Arbeit für den produktiven Einsatz zu schreiben.

Der Lehrling repariert ja auch nicht als erstes die S-Klasse vom Chef um dann zu lernen was ein Auto ist.
 
Hallo Michael.

Vielen Dank für deine Hilfe. Deine Vorschläge waren hilfreicher als die anderen Metaphern. Ohne Therory ist das sicher ein steiniger Weg jedoch dachte ich bekomme hier auch ein paar konstruktive Ideen. Literatur habe ich mir schon einiges besorgt nur komme ich noch nicht ganz klar und zum Teil ist es noch etwas verwirrend. Meine Aufgabe ist auch keine echte Herausforderung hier geht es nur um den richtigen Ansatz.

oferl
 

Neue Themen


Zurück
Oben