Off Topic 20.465 Themen, 227.448 Beiträge

Hochzeit in Java codieren

Catweazle6 / 12 Antworten / Baumansicht Nickles

Moinsen Leute,

ich habe für eine Hochzeitszeitung die Aufgabe auf's Auge gedrückt bekommen, eine kl. Hochzeitsgeschichte in Java zu kodieren.
(Bitte keine Grundsatzdiskussionen, warum ich mich darum kümmere, wenn ich kaum Ahnung von Java habe. Ich hatte "gegen" Frauen zu diskutieren und habe etwas voreilig 'ne Idee ausgesprochen ...)

Ein schlichtes If er.lebt(sie) = TRUE then er.heiraten(sie) bekomme ich wahrscheinlich auch noch hin, ist aber nicht wirklich originell.

Ich war der Meinung, dass ich nicht der erste mit dieser Idee war und sich was im Netz finden würde. Bisher finde ich aber entweder klassische Hochzeitszeitungen oder Code-schnipsel aus ernsthaften Tutorials.

Kann mir jemand weiterhelfen?
Entweder mit entsprechenden Links oder selbstgestrickten JAVA-Code (der sich nicht unbedingt compilieren lassen muss ;-)

Für den zweiten Fall kann ich vorsichtshalber ;-) ja mal etwas Material in den Raum stellen. Kreative Erweiterungen, Ausschmückungen & Co werden natürlich dankbar angenommen.

Grütze,
der wo nicht gegen Frauen diskutieren kann.



Material:
Sie Medizienerin (Puls>160, Herz überschlägt sich)
Er Informatiker (code gehackt, ...)
kennengelernt in Hannover beim Sport(radfahren)
Wg. seines Jobs zusammen erst nach Bayern, dann nach NRW gezogen.

Class Brautleute
anke = new Brautleute.braut()
rüdiger new Brautleute.braeutigam()
...

bei Antwort benachrichtigen
Borlander Catweazle6 „Hochzeit in Java codieren“
Optionen

Hm, das ist doch wirklich mal eine nette Idee :-)

Also ich denke es wäre sicher sinnvoll wenn die Braut und Bräutigam das Interface oder ggf. Klasse Brautleute implementieren ;-)

Da ich bei der aktuellen Hitze noch nicht pennen kann habe ich mal so ein paar grundlegende Klassen zusammengebastelt:




package hochzeit;

public interface Brautleute {

public boolean liebt(Brautleute partner);

public boolean istVerheiratet();


}





package hochzeit;

import java.util.Date;

public class Brautpaar {

private Braut frau;
private Braeutigam mann;
private Date hochzeitstag;


protected Brautpaar(Braut frau, Braeutigam mann) {
this.frau = frau;
this.mann = mann;
frau.heirate(mann);
mann.heirate(frau);
this.hochzeitstag = new Date();
}

protected Brautpaar(Braeutigam mann, Braut frau) {
this(frau, mann);
}

public Braut getFrau() {
return frau;
}

public Braeutigam getMann() {
return mann;
}

public Date getHochzeitstag() {
return hochzeitstag;
}

public void scheidung() {
throw new UnsupportedOperationException();
}

}





package hochzeit;

public class Standesamt {

public static Brautpaar verheirate(Braut f, Braeutigam m) {
synchronized (f) {
synchronized (m) {
if(f.istVerheiratet() || m.istVerheiratet()) {
throw new IllegalStateException();
}
return new Brautpaar(f, m);
}
}
}

}





package hochzeit;

public class Braut implements Brautleute {

private Braeutigam mann = null;
private int pulse;

public boolean istVerheiratet() {
return mann != null;
}

public synchronized void heirate(Braeutigam mann) {
if(istVerheiratet()) {
throw new IllegalStateException();
} else {
this.mann = mann;
}
}

public boolean liebt(Brautleute partner) {
return pulse > 160;
}

public void setPulse(int pulse) {
this.pulse = pulse;
}



}





package hochzeit;

public class Braeutigam implements Brautleute {

private Braut frau = null;

public boolean istVerheiratet() {
return frau != null;
}

public synchronized void heirate(Braut frau) {
if(istVerheiratet()) {
throw new IllegalStateException();
} else {
this.frau = frau;
}
}


public boolean liebt(Brautleute partner) {
// TODO implement
return true;
}

}





Je nach Bedarf sollten Braut und Bräutigam noch um entsprechende Methoden ergänzt werden. Und es bedarf natürlich auch noch einer main() in der das ganze tatsächlich auch genutzt wird...


Gruß
Borlander
bei Antwort benachrichtigen
ChrE Borlander „Hm, das ist doch wirklich mal eine nette Idee :- Also ich denke es wäre sicher...“
Optionen

Hallo!

Ich habe keine Ahnung von Java.
Zwei kleine Verbesserungsvorschläge würde ich aber anbringen wollen.

Die Methode Scheidung würde ich als Destruktor (finalize ?) schreiben.

Und dann: Warum heiratet man? Weil man sich liebt? Ha, ha, ha!
Darum stirbt Deutschland aus. Niemand denkt mehr an Kinder.
Eine Methode make_Child sollte doch noch in der Brautpaarklasse implementiert werden.
Vielleicht als fork() oder pipe()? Generell, ein Child-Objekt fehlt.

Gruss

ChrE

bei Antwort benachrichtigen
Catweazle6 ChrE „Hallo! Ich habe keine Ahnung von Java. Zwei kleine Verbesserungsvorschläge...“
Optionen

Hallo!

Die Vorschläge sind klasse. Nur werde ich's alleine wegen mangelnder JAVA-Fähigkeiten nicht fertigstellen können.
Lasst mich bitte nicht hängen!

Scheidung ist im Sinne von Hochzeit ein prima Destruktor. Gibt es bei einem Package auch soetwas wie einen Destruktor?

Um die Komplexität nicht unnötig zu steigern, würde ich es bei der Klasse Brautleute belassen. Hier wäre Scheidung doch eher eine Methode, oder?
Wenn man create_child() als getChild() benennen würde, dann würde sich Child als Eigenschaft/Property ja quasi aufdrängen.

Zu der Frage warum man heute heiratet, sei soviel gesagt. Die beiden tun's nicht, weil Nachwuchs im Anmarsch wäre ;-)
Hier ist tatsächlich die Liebe das Argument, (oder waren's doch die Steuervorteile? ;-) )

Die noch fehlende main()-Funktion wäre in meinen Augen der Platz, wo man das persönliche und den zeitlichen Ablauf unterbringen kann.
* Damals: Kennenlernen, zusammenziehen, Jobwechsel, umziehen
* Heute: Hochzeit
* Zukünftig: Kind(er) bekommen
(Die Existenz der Methode Scheidung() ist wohl Mahnung genug, die bei der Hochzeit für die Zukunft einzuplanen wäre dann wohl doch taktlos)

Im Sinne eines Glückwunsches wäre doch eine (Endlos)Schleife in der Exceptions (ich kann's leider nur per If-Then :-( )die Dinge markieren, die während einen glücklichen Ehe so vorkommen, (Kind(er) kriegen, Haus bauen, Baum pflanzen, ... )

So wie in etwa:
private Main()

/* kennen lernen */
....

/* jobwechsel, umziehen */
...

/* Hochzeit*/
If heiratsAntragGemacht AND heiratsAntragAngenommen Then
sindVerheiratet = TRUE
EndIf


While sindVerheiratet Do

/* Hochzeitstag vergessen */
If date(now()) = brautleute.getHochzeitstag() AND noBlumen(Bräutigam) Then
braut.HölleHeiss()
EndIf

/* Jungen zur Welt bringen */
If zeitIstReif Or NoStammhalter(allKids) Then
makeChild("")
EndIf

/* Haus bauen / renovieren */
if zinsenGünstig() Then
SteinAufStein
flagHausFertig = TRUE
EndIf

/* Baum pflanzen*/
if flagHausFertig AND numOfKids >= 1 Then
baumVorHausPflanzen()
EndIf

EndDo


Jungs Ihr seid spitze! Für das Erreichte schon mal Danke. Mal sehen wie ich Euch 'nen Stück von der Hochzeitstorte zukommen lassen kann.
Aber bitte lasst mich nicht angefüttert im Regen stehen, sondern mir noch etwas weiter.

Grüße,
Catweazle6

bei Antwort benachrichtigen
ChrE Catweazle6 „Hallo! Die Vorschläge sind klasse. Nur werde ich s alleine wegen mangelnder...“
Optionen

Hallo!

In Python würde ich es wohl hinbekommen, in Java nicht.

Falls die wegen der Liebe heiraten:
Nach sieben Jahren ist statistisch gesehen der Liebesofen aus, wenn
es keine Kinder gegeben hat.
Das "verflixte siebte Jahr" hat also was wahres.
Ich finde im Moment nur die Quelle nicht.

Du kannst also den Destruktor über einen Timer steuern.

Gruss

ChrE

bei Antwort benachrichtigen
Borlander Catweazle6 „Hallo! Die Vorschläge sind klasse. Nur werde ich s alleine wegen mangelnder...“
Optionen

Ich werde (sofern ich dran denke. Ansonsten eben per Antwortbenachrichtung anstoßen...) heute abend nochmal einen Blick drauf werfen...

bei Antwort benachrichtigen
Borlander ChrE „Hallo! Ich habe keine Ahnung von Java. Zwei kleine Verbesserungsvorschläge...“
Optionen
Destruktor (finalize ?)
finalize ist kein Destructur. Die Funktion wird in Verbindung mit dem GarbageCollector aufgerufen. Es gibt keine Garantie, daß finalize überhaupt aufgerufen wird...

Darum stirbt Deutschland aus. Niemand denkt mehr an Kinder.
Es soll auch Menschen geben die ohne Kinderpläne heiraten. Inbesondere sog. "DINK".
Unabhängig davon ist es natürlich sicher sinnvoll eine solche Methode zu implementieren ;-)


Gruß
Borlander
bei Antwort benachrichtigen
rill Catweazle6 „Hochzeit in Java codieren“
Optionen

"child process" and (if not) "kill parent"?

Bin leider kein Programmierexperte (nur etwas BASIC zu Sinclair ZX Spectrums Zeiten gemacht).


rill

bei Antwort benachrichtigen
Prosseco rill „Gibt es bei Java nicht ...“
Optionen

Netbeans 6.1

*g*

Gruesse
Sascha

Das ist keine Signatur. Sondern ich putz hier nur
bei Antwort benachrichtigen
Catweazle6 Prosseco „Netbeans 6.1 g Gruesse Sascha“
Optionen

Hallo Sascha,

Du hast es - zumindest in meinem Fall - mit wenig erfahrenen Entwicklern zu tun.
Was soll mit der Name einer Entwicklungsumgebung sagen?

Sorry, ich verstehe die Anspielung nicht !?!

bei Antwort benachrichtigen
Prosseco Catweazle6 „Hallo Sascha, Du hast es - zumindest in meinem Fall - mit wenig erfahrenen...“
Optionen

Lernen sonst nichts.

Wenn du auch, auf dein Spezifisches Fall, was Ungemein Super ist.

Dann solltest dir gedanken machen den JAVA, besser kennen und lernen.

Weil wenn jemand oder besser DU. Was Schmetterlings Maessig, gegen ueber deine Frau, ueberraschen willst.

Heisst es: Das du, dich Muehe machst.

Ueberraschungen im Leben, sind noch groesser. Was man nicht Kaufen kann. Alles ist vom Herzen.

Saludos
Sascha

Das ist keine Signatur. Sondern ich putz hier nur
bei Antwort benachrichtigen
Catweazle6 Prosseco „Lernen sonst nichts. Wenn du auch, auf dein Spezifisches Fall, was Ungemein...“
Optionen

Hallo Sascha,

bestimmt hast Du recht, allerdings bin ja nicht ich es der heiraten will sondern ein Kumpel von mir.
Da dieser Kumpel nun mal der Informatiker ist und nicht ich, soll das Programm was sein was er lesen kann.

Da ein Frauenkränzchen sich die Hochzeitszeitung ausgedacht hat, programmieren Technik ist und Technik (in den Köpfen "meines" Fraunekränzchen) was für Kerle ist, habe ich das Thema nun an den Backen. -> Ich bin nur der Nappel für's Grobe :-)

Grütze,
Catweazle6

bei Antwort benachrichtigen
Borlander Catweazle6 „Hallo Sascha, Du hast es - zumindest in meinem Fall - mit wenig erfahrenen...“
Optionen

Zumal ich sowieso zu Eclipse raten würde ;-)

bei Antwort benachrichtigen