Was ist die Verzweigungslogik bei Java Programmierung?

5 Antworten

JEDES Programm folgt mit seinen Befehlen einer Aufrufhierarchie. Auch Objektorientierte Programme.

Es gibt die Menge aller möglichen Aufrufhierarchien und die aktuelle Aufrufhierarchie.

Die Menge aller möglichen Aufrufhierarchien zeigt die unterschiedlichen Möglichkeiten des Programmablaufs. In den meisten Fällen ist diese Menge unendlich mächtig.

In der aktuellen Aufrufhierarchie sind verschiedene Entscheidungen getroffen worden (Verzweigungslogik), bis man zu dem aktuellen Programmausführungspunkt gekommen ist.

Die üblichen Kontrollstrukturen, die Verzweigungslogik beinhalten sind:

  • Fallunterscheidung (Selektion)
  • und Schleife mit Abbruchbedingung (Iteration)

Dies sind die einzigen Möglichkeiten, den Programmablauf in prozeduralen Sprachen in eine bestimmte Richtung zu lenken.

In der Objektorientierung existiert mit der Polymorphie eine weitere Möglichkeit, den Programmablauf zu steuern. Polymorphie entscheidet in einer Vererbungshierarchie über den weiteren Programmablauf, indem hinter einer Abstraktion dem Pfad einer konkreten Implementation gefolgt wird.

Analog zu der Standard-Fallunterscheidung existiert ein Design-Pattern, welches auch "objektorientierte Fallunterscheidung" genannt wird: Das Visitor-Pattern.

Das Visitor-Pattern spaltet die Abstraktion (Interface oder abstrakte Klasse) wieder in in die konkreten Ausprägungen auf und hat damit den Charakter einer If-Anweisung.

Andersherum kann man auch JEDE If-Anweisung theoretisch in einer Polymorphie abbilden. Aus praktischen Gründen werden aber meistens nur ausreichend große algorithmische Anteile in einer Polymorphie codiert, um von dem Vorteil isolierter Kompiliereinheiten zu profitieren. Denn das Problem von If-Anweisungen ist, dass sie sich innerhalb einer Kompiliereinheit (z.B. einer Klasse) befinden und damit mehr Code real voneinander abhängt, als wenn man Polymorphie nutzen würde.

Mit Polymorphie kann man somit das SOLID-Prinzip "Open-Closed-Principle" unterstützen, was bedeutet, dass man bestehende Kompiliereinheiten nicht mehr anfassen muss, wenn man eine neue Ablauf-Verzweigung einfügen möchte. Anders als bei normalen If-Statements ist das nämlich bei Polymorphie möglich.

Woher ich das weiß:eigene Erfahrung – Ich denke sehr viel nach...

Hallo SamanthaRuney,

bin seit Jahren Software-Entwickler Schwerpunkt Java. Der Begriff Verzweigungslogik ist mir nur bei Umfragesystemen untergekommen. Das hat für mich nichts konkret mit Java zutun, außer man würde ein Umfragesystem damit implementieren.

"Verzweigungslogik der Objektorientierten Programmierung" ergibt daher wenig Sinn für mich, außer man würde ein Umfragesystem meinen.

Bin gespannt, was Du noch für Antworten erhälst.

Ich würde an deiner Stelle aber nachfragen, was die Aufgabenstellung konkret bedeutet. Du willst dir wohl kaum irgendwas aus den Fingern saugen, was der Prüfer gar nicht hören/prüfen will.

Gruß

AldoradoXYZ  03.06.2018, 15:02

Wenn ich jetzt drüber nachdenke, könnte man ganz tolle Umfragesysteme mit Objektorientierung bauen.

Mit

  • Vorbedingungen
  • Zyklen-Vermeidung und Erkennung
  • Automatischer Anordung der Fragen (Baumstrukur)

Aber ob das von den Prüfern gemeint ist?

Gruß

0

Ich bin Software-Entwickler und habe diesen Begriff noch nie gehört.

Verzweigungen sind if's (also Wenn's). Wenn, dann, sonst. Diese Verzweigungen sind an Bedingungen geknüpft, welche wahr oder falsch sein können. Das hat immer mit Logik zu tun, weil diese jenen Ausdrücke immer boolsche Logik besitzen.

Laut dem halbschlauen Internet soll es sich dabei um irgendwelche Abfolgen in einer Umfrage gehen. Also dass die jetzige Frage abhängig davon ist (bedingt), was du bereits jetzt für Antworten gegeben hast.

Also:

1) Bist du Männlich? --> ja
2) Hast du ein Auto? --> Ja
3) Wie war dein 18. Geburtstag so? (musst du ja schon gehabt haben, wenn du Auto hast) --> suuuper
4) Nutzt du dein Auto als Statussymbol? .... kann man als Frage aus Autobesitztum und Geschlecht ableiten

so....mehr fällt mir dazu nicht ein, denn mit sowas hab ich im Prinzip nichts zu tun.

Das ist bei Onlineformularen eine Möglichkeit, um z.B. bestimmte Fragen nur dann zu stellen, wenn dies nötig ist.

Bsp.: Wenn du zuerst die Frage stellst

Wie alt bist du?

und als Ergebnis 12 erhälst, dann wäre es unsinnig, in der nächsten Frage nach dem Beruf zu fragen, da eine zwölfjärige Person ja höchstwahrscheinlich nicht arbeitet.

Xearox  03.06.2018, 14:51

Ja natürlich geht eine 12 jährige Person arbeiten. Schau doch mal im Vietnam, dort ist Kinderarbeit ganz groß geschrieben. In Zentral Afrika müssen sogar Kinder in Bergwerken arbeiten :D

0
Xearox  03.06.2018, 14:54
@Destranix

Willst paar auf den Mund? -> Wenn Ja -> Soll ich Krankenwagen schon anrufen? -> Wenn Nein -> Können wir Freunde sein?

0
Tannibi  03.06.2018, 15:05
@Xearox

Man fragt sich manchmal wirklich, wie manche Leute überhaupt schreiben gelernt haben.

0
SamanthaRuney 
Fragesteller
 03.06.2018, 14:53

Also somit ein Wenn-Dann Befehl?

0
Destranix  03.06.2018, 14:54
@SamanthaRuney

Ja, mehr oder weniger...

eher mehrere verschachtelte Wenn-Dann-befehle, die eine Struktur bilden...

1
Husar22  03.06.2018, 14:58

Was hat das dann mit Objektorientierung zu tun?

0
Destranix  03.06.2018, 15:00
@Husar22

Keine Ahnung...

Das inet hat nicht mehr ausgespuckt...

Evtl. sind damit If-Abfragen gemeint.

Oder eine schlaue Vererbung...

0

bin Softwareentwickler, hab den Begriff noch nie gehört,

ich würde den Prüfer/Lehrer bitten mir ein paar Stichworte zu nennen, das hilft oft schon extrem weiter