OOP Beispielprogramm

Dave

Aktives Mitglied
Morgen,

also da ich mittlerweile mit JAVA GUI-Programme mit Datebank anbindung schreiben kann würde ich gerne einen Schritt weitergehen, also OOP.

ich habe mir viele Onlinebücher zu dem Thema durchgelesen und weiß was der Sinn von OOP ist als das theoretisch weiss ich.
Wo ich mich jedoch schwer tuhe ist die Umsetztung, also wie man sich das Programm als ein Obejkt vorstellt und dann die richtige Klassen aufteilung macht etc.

Meine frage ist ob jemand hier vllt ein ganz kleines Programm in OOP hat welches er mir geben könnte damit ich mir den Quellcode angucke, ich kann da am besten aus solchen Beispielen lernen am besten wäre es natürlich wenn es noch eine Datenbankanbindung hätte.


Ich bedanke mich schon mal in vorraus.
 

MQue

Top Contributor
Schau dir lieber UML- Klassendiagramme an

Klassendiagramm ? Wikipedia
http://blog.nothing.ch/wp-content/uploads/2007/07/uml.gif

usw.

, da lernst du am besten, wie andere ein Programm aufgeteilt haben. Grundsätzlich ist zu sagen, dass es 4 Grundsätze gibt:

1. SRP (Single Responsible Prinzip)
2. LKP (Liskovsches Prinzip)
3. OCP (Open Close Prinzip)
4. DRY (Don't Repeat yourself)

Wenn du eine Klasse schreibst bzw. dir eine überlegst, dann beachtest du immer die 4 oben genannten Prinzipien,
zu 1: einen Klasse soll nur eine Sache können (also keine Monsterklassen schreiben wo alle anderen Klassen eine Referenz drauf haben) -> Frag dich einfach bei jeder Klasse: Die Klasse ... macht ... selber.

zu 2: pass bei der Vererbung auf, eine Subklasse muss eine Basisklasse zu 100% repräsentieren können

zu 3: Klassen sollen erweiterbar aber nicht mehr änderbar sein -> verwende so oft wie möglich private

zu 4: keine Code doppelt, wenn Code doppelt in Klasse A und Klasse B -> Code rausziehen und eine eigene Klasse machen.
 

Landei

Top Contributor
SRP könnte man als Spezialfall von Separation of Concerns auffassen, einem der nützlichsten Grundsätze überhaupt. Jeder Bestandteil eines Programms sollte genau eine Aufgabe erfüllen, die aber richtig. Selbst eine harmlose Methode wie
Java:
public void printElements(List<String> list) { for(String s: list) { System.out.print(s + ", "); }}
mischt zwei verschiedene Dinge (nämlich Daten auslesen und ausgeben) zusammen. Aber das gleiche Prinzip gilt auch auf "höheren" Ebenen: für Objekte oder sogar Packages (z.B. sollte ein Krimskrams-Package wie java.util aufgeteilt werden)
 

Firestorm87

Bekanntes Mitglied
Ich versteh Sun nicht, klar will man sich aufs wesentliche konzentrieren, aber warum müssen alle Demos die mit Swing gemacht sind, scheiße aussehen?

Gute Frage nächste Frage :)
Man weiß es nicht so genau....

SRP könnte man als Spezialfall von Separation of Concerns auffassen, einem der nützlichsten Grundsätze überhaupt. Jeder Bestandteil eines Programms sollte genau eine Aufgabe erfüllen, die aber richtig. Selbst eine harmlose Methode wie
Java:
public void printElements(List<String> list) { for(String s: list) { System.out.print(s + ", "); }}
mischt zwei verschiedene Dinge (nämlich Daten auslesen und ausgeben) zusammen. Aber das gleiche Prinzip gilt auch auf "höheren" Ebenen: für Objekte oder sogar Packages (z.B. sollte ein Krimskrams-Package wie java.util aufgeteilt werden)

In dem Beispiel würde man dir wahrscheinlich sogar verzeihen, dass du keine methode private void textausgabe(String text) ... geschrieben hast... aber Ich denke es wird schon klar, was du uns mitteilen möchtest :p

meistens fallen einem solche dinge aber auch erst richtig ins auf, wenn man den selben Abschnitt noch einmal irgendwo benötigt...

(z.B. mehrfachverwendung eines Parsers o.ä.... so lange man ihn nur einmal benötigt neigt man dazu ihn direkt mit einzubauen.... bei der 2ten nutzung ist ein Auslagern (normalerweise) zwingend erforderlich)
 

Dave

Aktives Mitglied
Schau dir lieber UML- Klassendiagramme an

Klassendiagramm ? Wikipedia
http://blog.nothing.ch/wp-content/uploads/2007/07/uml.gif

usw.

, da lernst du am besten, wie andere ein Programm aufgeteilt haben. Grundsätzlich ist zu sagen, dass es 4 Grundsätze gibt:

1. SRP (Single Responsible Prinzip)
2. LKP (Liskovsches Prinzip)
3. OCP (Open Close Prinzip)
4. DRY (Don't Repeat yourself)

Wenn du eine Klasse schreibst bzw. dir eine überlegst, dann beachtest du immer die 4 oben genannten Prinzipien,
zu 1: einen Klasse soll nur eine Sache können (also keine Monsterklassen schreiben wo alle anderen Klassen eine Referenz drauf haben) -> Frag dich einfach bei jeder Klasse: Die Klasse ... macht ... selber.

zu 2: pass bei der Vererbung auf, eine Subklasse muss eine Basisklasse zu 100% repräsentieren können

zu 3: Klassen sollen erweiterbar aber nicht mehr änderbar sein -> verwende so oft wie möglich private

zu 4: keine Code doppelt, wenn Code doppelt in Klasse A und Klasse B -> Code rausziehen und eine eigene Klasse machen.

huu cool und kanpp beschrieben, erinnert mich bisle an die Normalformen bei DB´s ;)

ok, ich schreibe bald (diese WE wohlmöglich) neues tool fürn BG poste den Quellcode dann hier, hoffe es wird wenigstens ein bisle nach OOP aussehen.

danke an euch alle ;)
 

Dave

Aktives Mitglied
Ahja habe erst jetzt mit dem programm angefangen, aber mal ne Frage zwischen durch, die GUi von dem Fenster(kleines Prog) kann ich doch in eine Klasse schreiben oder?
 

Firestorm87

Bekanntes Mitglied
Kannst du und solltest du sogar...

Je mehr die dein Programm trennst, desto leichter ist es später die Übersicht zu behalten.
Es ist also sehr sauber, wenn man für jede Aufgabe eine eigene Klasse schreibt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K beispielprogramm starten Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben