Ein Ausdruck des Beitrags mit 19 Antworten ergibt bei 3 Antworten pro Seite ca. 7 DIN A4 Seiten. Das entspricht bei 80 g/m² ca. 34.93 Gramm Papier.
-- Veröffentlicht durch TheOne am 9:47 am 17. Nov. 2006
Hier noch mal mein ganzer Quellcode, es geht jetzt alles soweit :) Klasse Eintrag (main):
Codeimport java.util.Scanner; class Eintrag { public static void main(String args[]) throws Exception{ //Scannerobjekt fr die Eingabe erzeugen Scanner eingabe = new Scanner(System.in); //Objekt Personen und Konten erzeugen Person p1 = new Person(); Person p2 = new Person(); Girokonto k1 = new Girokonto(); Girokonto k2 = new Girokonto(); //Verbindung der Kono und Personenklasse herstellen p1.konto(k1); p2.konto(k2); //Eingabe der Personendaten System.out.print("Wie ist der Name von Person1: "); p1.setName(eingabe.next()); System.out.print("Wie ist der Name von Person2: "); p2.setName(eingabe.next()); System.out.print("Wie ist das Geschlecht von Person1 (m/w): "); p1.setSex(eingabe.next()); System.out.print("Wie ist das Geschlecht von Person2 (m/w): "); p2.setSex(eingabe.next()); System.out.print("Wie alt ist Person1: "); p1.setAlter(eingabe.nextInt()); System.out.print("Wie alt ist Person2: "); p2.setAlter(eingabe.nextInt()); //Eingabe der Kontodaten System.out.print("Wie ist die Kontonummer der Person1: "); k1.setKnr(eingabe.nextInt()); System.out.print("Wie ist die Kontonummer der Person2: "); k2.setKnr(eingabe.nextInt()); System.out.print("Wie hoch ist das Saldo von Person1 : "); k1.setSaldo(eingabe.nextDouble()); System.out.print("Wie hoch ist das Saldo von Person2 : "); k2.setSaldo(eingabe.nextDouble()); System.out.println(); //Ausgabe der Daten System.out.println(); System.out.println("------------------------------------"); System.out.println("Der Name der Person1: " + p1.getName()); System.out.println("Kontonummer der Person1: " + k1.getKnr()); System.out.println("Ihr Guthaben: " + k1.getSaldo()); System.out.println("Alter: " + p1.getAlter()); //Vergleich der Eingabe anhand der getSex() Funktion if(p1.getSex()) { System.out.println(p1.getName() + " ist Weiblich"); } else { System.out.println(p1.getName() + " ist Maennlich"); } System.out.println("------------------------------------"); //////Konsistenzprüfung Ausgabe (P1)/// System.out.println(p1.pruefeKonto(p1)); /////////////////////////////////////// //Ausgabe der Daten System.out.println("------------------------------------"); System.out.println("Der Name der Person2: " + p2.getName()); System.out.println("Kontonummer der Person2: " + k2.getKnr()); System.out.println("Ihr Guthaben: " + k2.getSaldo()); System.out.println("Alter: " + p2.getAlter()); //Vergleich der Eingabe anhand der getSex() Funktion if(p2.getSex()) { System.out.println(p2.getName() + " ist Weiblich"); } else { System.out.println(p2.getName() + " ist Maennlich"); } System.out.println("------------------------------------"); //////Konsistenzprüfung Ausgabe (P2)/// System.out.println(p2.pruefeKonto(p2)); /////////////////////////////////////// System.out.print("------------------------------------"); } } | Klasse Person:
Codeclass Person { //Variablennamen private String name; private boolean weiblich; int alter; boolean temp; Girokonto konto; //Konstruktor Person Person() { name = ""; weiblich = false; alter = 0; } public void konto(Girokonto k) { konto = k; } //Personennamen setzen public void setName(String Name) { this.name = Name; } //Gibt den Namen zurck public String getName() { return name; } //Geschlecht setzen public void setSex(String Sex) { //ohne Gross- und Kleinschreibnung (IgnoreCase) | equals (String vergleich) weiblich = Sex.equalsIgnoreCase("w"); } //Geschlecht zurckgeben public boolean getSex() { return weiblich; } //Alter setzen public void setAlter(int a) { this.alter = a; } //Alter zurückgeben public int getAlter() { return alter; } //Methode zur Kosistenzprüfung public boolean pruefeKonto(Person p) throws Exception { if(this.getAlter()<16) { System.out.println("Tut mir ja ehrlich leid " + this.getName() + ", aber du bist zu jung!"); } else { System.out.println("Alles klar :-) " + this.getName() + " darfst dein Konto behalten."); } return temp; } } | Klasse Girokonto:
Codeclass Girokonto { //Variablennamen private int knr; private double saldo; Person besitzer; //Konstruktor Girokonto Girokonto() { knr = 0; saldo = 0.0; } public void besitzer (Person p) { besitzer = p; } //Kontonummer setzen public void setKnr(int n) { knr = n; } //und Kontonummer zurckgeben public int getKnr() { return knr; } //Saldo setzen public void setSaldo(double s) { saldo = s; } // und Saldo zurckgeben public double getSaldo() { return saldo; } } | Werde aber heute mit Try und Catch abfragen anfangen. Würd mich freuen wenn ihr mir helft und mitarbeiten würdet wenn ich mal fragen hab. Find sowas immer interessant :lol: MfG One :cu:
-- Veröffentlicht durch E1nste1n am 9:09 am 17. Nov. 2006
Böööh ... das sieht ja viel zu einfach aus ... hätt man ja auch drauf kommen können ;) thx für die Rückmeldung ...
-- Veröffentlicht durch TheOne am 19:50 am 16. Nov. 2006
public boolean pruefeKonto(Person p) throws Exception { if(this.getAlter()<16) { System.out.print("Unter 16 Jahren, bitte nur mit Erlaubnis "); System.out.println("der Erziehungsberechtigten!!"); } return false; } So.. über diese Methode der Personklasse prüfe ich das jetzt. Ich muss nur noch kompilieren T_T Ich will das ja nicht direkt machen ;) Das wär ja zu einfach :lol:
-- Veröffentlicht durch Jack the Ripper am 18:10 am 16. Nov. 2006
Was funzt denn daran nicht? Also ich würds direkt bei der Eingabe abfangen:
Code System.out.print("Wie alt ist Person 1: "); int alter = eingabe.next(); if(alter < 16) { System.out.print("Unter 16 Jahren, bitte nur mit Erlaubnis "); System.out.println("der Erziehungsberechtigten!!"); } else { P1.setAlter(alter); }
| Aber ich seh grad... du hast da nen Simikolon zu viel, oder?
-- Veröffentlicht durch TheOne am 17:44 am 16. Nov. 2006
Ich wollte eigentlich sowas in der Art machen: if(this.getAlter()<16) { System.out.print("Unter 16 Jahren, bitte nur mit Erlaubnis "); System.out.println("der Erziehungsberechtigten!!"); } Aber das funktioniert nicht richtig... :sadden:
-- Veröffentlicht durch Jack the Ripper am 17:30 am 16. Nov. 2006
Wie willstn das Überprüfen? Bräuchtest ja sone Art globale Datenbank, mit der du das ganze vergleichen kannst:noidea: Oder womit willte es denn vergleichen? Bei der Kontonummer könnte man höchstens auf die Anzahl der Stellen prüfen ...das wär aber zu einfach ;)
-- Veröffentlicht durch TheOne am 17:17 am 16. Nov. 2006
Ok, ich hab herausgefunden was Konsistenzprüfung ist... Un zwar ob die benutzten Methoden überhaupt erlaubt sind.. Das heißt, ob P1 ein Konto haben darf oder nicht.. Aber dann muss ich selber noch eine Limitierung einbauen, zum Beispiel Alter. Und wenn das dann eingebaut ist und alle Daten erstellt sind, muss eine Prüfung vollzogen werden ob die Daten korrekt sind, denk ich.. Nur wie? Mal gucken.. Dürft gerne mit dran rumbasteln.. Ist Open Source :lol:
-- Veröffentlicht durch Jack the Ripper am 15:14 am 16. Nov. 2006
nochnie gehört :dontknow:
-- Veröffentlicht durch TheOne am 13:03 am 16. Nov. 2006
Das mit dem Char hab ich mir auch schon überlegt ^^ p1.konto(k1); p2.konto(k2); Hab jetzt diese Methoden benutzt. Geht soweit so gut :) In Person und Konto steht jeweils das: public void konto(Konto k) { konto = k; } public void besitzer (Person p) { besitzer = p; } Funzt anscheinend ^^ @Jack Kannst du mir dann sagen was genau eine Konsistenzprüfung ist? :noidea: ^^ (Geändert von TheOne um 13:37 am Nov. 16, 2006)
-- Veröffentlicht durch Jack the Ripper am 12:42 am 16. Nov. 2006
Um im Konto den Besitzer zu setzen rufste den Dienst "Besitzer" im Konto auf mit dem OBJEKT-Namen des gewünschten Besitzer als Parameter:
Mit den Konsolen-Sachen kenn ich mich nicht wirklich aus, aber es könnte so aussehen:
Code System.out.print("Wer ist der Besitzer von Konto 1 ? (Objektname): "); K1.Besitzer(eingabe.next());
| Ausgeben kannste den Besitzer afaik so:
Code public Person getBesitzer() { return Besitzer(); }
| In der main:
Code System.out.println("Besitzer des 1. Kontos: " + K1.Besitzer());
| Kann aber sein, dass du dann nur die Speicheradresse rauskriegst :buck: Musste vllt mit getString oder so machen.. da bin ich mir grad unsicher... Bin aber nicht sicher, ob die Zuweisung mit dem "this" funzt, die du gemacht hast: Würd das Geschlecht als Character speichern.. sieht irgendwie elleganter aus^^ BTW: Die Lösung mit der Steuerklasse wär einfacher und übersichtlicher, oder?:noidea: (Geändert von Jack the Ripper um 12:44 am Nov. 16, 2006)
-- Veröffentlicht durch TheOne am 11:41 am 16. Nov. 2006
Damit Einstein das auch liest kommt nun ein nicht bös gemeinter Doppelpost :lol: @Einstein: Ich glaub ich habs entdeckt, aber es fehlt noch was. Die Methoden sehen so aus, oder zumindest so ungefähr: Methode in Konto
Codepublic void Besitzer (Person p1) { besitzer = p1; p1.Konto (this); } | Methode in Person:
Codepublic void Konto(Konto k1) { konto = k1; k1.Besitzer (this); } | In wie setz ich das jetzt in meiner Main-Klasse Eintrag? Also das ich das auslese oder Verknüpfe oder wie auch immer...? :lol:
-- Veröffentlicht durch TheOne am 11:26 am 16. Nov. 2006
ich bleib garantiert am Ball ;) Schau hier einfach 2-3 mal rein.. Irgendwann im Laufe des Tages hab ichs raus.. Hoff ich :lol: Aber nett da sich einen Javabegeisterten hier gefunden hab :) :cu:
-- Veröffentlicht durch Jim am 11:25 am 16. Nov. 2006
Warum sollen sie die Beiden kennen? Erarbeite doch eine dritte Struktureinheit, die die zwei steuert! Oder geht des bei Java ned? Wenn nötig, versuch mal eins mit drei und zwei mit drei. Und drei steuert die Klassen: Konto und Person!
-- Veröffentlicht durch E1nste1n am 11:22 am 16. Nov. 2006
whooops ... tolles Thema :) nö sry, in der Hinsicht kann ich dir auch nicht weiterhelfen. Vom generellen Verständniss stimme ich dir zu: bei einer bidirektionelen Verbindung der Klassen kennen sie die Methoden udn Attribute der jeweils anderen - afaik. Wie man diese Verbindung herstellt, jedoch keine Ahnung, ich weiß jedoch - da ich es selbst schon mal probiert habe - das es leider nicht über eine "simple" Methode geht, welche die Classen miteinander verknüpft. Aber wenn du was in der Richtung rausfindest sag mal Bescheid, intresieren tät mich das auch ;)
-- Veröffentlicht durch TheOne am 11:03 am 16. Nov. 2006
Die Klasse Konto und Person sollen sich gegenseitig kennen.. In der Form das P1 sein eigenes Konto bekommt und P2 auch. Das Problem liegt allgemein da, dass ich es gerne mit Biderektionaler Verbindung machen möchte.. Und später auch eine Konsistenzprüfung. Nur ich weiß um Himmelswillen nicht wie... :lol: Vom eigenen logischen denken her würde ich sagen ich brauch zwei bestimmte Methoden.. Eine in Person und eine in Konto.. Aber frag mich nicht welche :sadden: :lol: ^^ MfG One :cu:
-- Veröffentlicht durch E1nste1n am 11:00 am 16. Nov. 2006
achso .... :thumb: Okay ... und was funktioniert nun ganz konkret nicht ?
-- Veröffentlicht durch TheOne am 10:54 am 16. Nov. 2006
Nein die Klassen hab ich ja :lol: Ist ja nur das Programmm meiner "main" ;) Person:
Codeclass Person { //Variablennamen private String name; private boolean weiblich; Konto konto; //Personennamen setzen public void setName(String Name) { this.name = Name; } //Gibt den Namen zurück public String getName() { return name; } //Geschlecht setzen public void setSex(String Sex) { //ohne Gross- und Kleinschreibnung (IgnoreCase) | equals (String vergleich) weiblich = Sex.equalsIgnoreCase("w"); } //Geschlecht zurückgeben public boolean getSex() { return weiblich; } } | Konto:
Codeclass Konto { //Variablennamen private int knr; private double saldo; Person Besitzer; //Kontonummer setzen public void setKnr(int n) { knr = n; } //Kontonummer zurückgeben public int getKnr() { return knr; } //Saldo setzen public void setSaldo(double s) { saldo = s; } // und saldo zurückgeben public double getSaldo() { return saldo; } } | :lol: Büdde ^^ Und ja, Java ist ganz lustig ;) Finds irgendwie cool ^^
-- Veröffentlicht durch E1nste1n am 10:50 am 16. Nov. 2006
Okay .... dann mal langsam ;) ... schick das du bei Java gelandet bsit - tolle Sprache oder ? :) und dann zu deinem Programm: Du hast keien Klassen verwendet ... du hast jeweils 2 Objekte der Klassen Konto und Person verwendet! Die Klasse enthäklt ja nur den "Bauplan" für die Objekte dieser, demnach musst du die Klase noch erstellen. Grundsätzlich müsstest du dann Attribute festlegen (Alter, Geschlecht, Kto. Nr, usw) und Methoden (setter und getter (setName, getName)) deklarieren. Falls weitere Fragen sind her damit ... oder auch google :) ... zweiter Treffer mit den suchwörtern -> Bauplan für eine Klasse Java Link viel Erfolg!
-- Veröffentlicht durch TheOne am 9:51 am 16. Nov. 2006
Bin mittlerweile bei Java angelangt und werde da auch bleiben :lol: Hab auch schon nen bissel was zusammengezimmert und will es für mich jetzt erweitern... Google hat mir sehr geholfen, wie auch andere tollte Tuts, aber nun stehe ich vor einem kleinen Problem... Sofern sich jemand mit Java auskennt, würde ich gerne um Unterstützung bitten :lol: Erstmal der Code:
Codeimport java.util.Scanner; class Eintrag { public static void main(String args[]){ //Scannerobjekt für die Eingabe erzeugen Scanner eingabe = new Scanner(System.in); //Objekt Personen und Konten erzeugen Person P1 = new Person(); Person P2 = new Person(); Konto K1 = new Konto(); Konto K2 = new Konto(); //Verbindung der Kono und Personenklasse herstellen K1.Besitzer = P1; K2.Besitzer = P2; //Eingabe der Personendaten System.out.print("Wie ist der Name von Person1: "); P1.setName(eingabe.next()); System.out.print("Wie ist der Name von Person2: "); P2.setName(eingabe.next()); System.out.print("Wie ist das Geschlecht von Person1 (m/w): "); P1.setSex(eingabe.next()); System.out.print("Wie ist das Geschlecht von Person2 (m/w): "); P2.setSex(eingabe.next()); //Eingabe der Kontodaten System.out.print("Wie ist die Kontonummer der Person1: "); K1.setKnr(eingabe.nextInt()); System.out.print("Wie ist die Kontonummer der Person2: "); K2.setKnr(eingabe.nextInt()); System.out.print("Wie hoch ist das Saldo von Person1 : "); K1.setSaldo(eingabe.nextDouble()); System.out.print("Wie hoch ist das Saldo von Person2 : "); K2.setSaldo(eingabe.nextDouble()); System.out.println(); //Ausgabe der Daten System.out.println(); System.out.println("------------------------------------"); System.out.println("Der Name der Person1: " + P1.getName()); System.out.println("Kontonummer der Person1: " + K1.getKnr()); System.out.println("Ihr Guthaben: " + K1.getSaldo()); //Vergleich der Eingabe anhand der getSex() Funktion if(P1.getSex()) { System.out.println(P1.getName() + " ist Weiblich"); } else { System.out.println(P1.getName() + " ist Maennlich"); } System.out.print("------------------------------------"); //Ausgabe der Daten System.out.println(); System.out.println("------------------------------------"); System.out.println("Der Name der Person2: " + P2.getName()); System.out.println("Kontonummer der Person2: " + K2.getKnr()); System.out.println("Ihr Guthaben: " + K2.getSaldo()); //Vergleich der Eingabe anhand der getSex() Funktion if(P2.getSex()) { System.out.println(P2.getName() + " ist Weiblich"); } else { System.out.println(P2.getName() + " ist Maennlich"); } System.out.println("------------------------------------"); } } | Wie ihr seht enthält mein Programm 2 Klassen, Konto und Person. Da ich mich gestern wieder hingesetzt habe und das alles ein wenig verfeinern wollte bin ich auf Bidirektionale Verbindungen und Konstruktoren gestoßen.. Öhm.. ja soweit so gut :) Problem an der Geschichte ist im Moment die Realisierung... Wenn ich den komplizierten Mist im Internet richtig verstanden habe geht es darum Klassen und Objekte miteinander bekannt zu machen oder? Nebenbei wurde noch Konsistenzprüfung erwähnt. Wäre nett wenn mir einer da etwas unter die Arme greifen könnte. Das was ich im Internet lese ist entweder was mit Netzwerk, oder auf wissenschaftlicher Basis geschrieben, so das ich es nicht verstehe :lol: MfG Euer One :cu:
|