» Willkommen auf Software «

TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


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:
Code
import 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:


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5420 Tagen | Erstellt: 9:51 am 16. Nov. 2006
E1nste1n
aus BERLIN
offline


Basic OC
14 Jahre dabei !

AMD Athlon 64 X2 Dual Core
2200 MHz @ 2640 MHz
46°C mit 1.400 Volt


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!


"Alles sollte so einfach wie möglich sein - aber nicht einfacher." : Albert Einstein

Beiträge gesamt: 212 | Durchschnitt: 0 Postings pro Tag
Registrierung: Aug. 2003 | Dabei seit: 5231 Tagen | Erstellt: 10:50 am 16. Nov. 2006
TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


Nein die Klassen hab ich ja :lol: Ist ja nur das Programmm meiner "main" ;)

Person:
Code
class 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:
Code
class 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 ^^


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5420 Tagen | Erstellt: 10:54 am 16. Nov. 2006
E1nste1n
aus BERLIN
offline


Basic OC
14 Jahre dabei !

AMD Athlon 64 X2 Dual Core
2200 MHz @ 2640 MHz
46°C mit 1.400 Volt


achso .... :thumb:


Okay ... und was funktioniert nun ganz konkret nicht ?


"Alles sollte so einfach wie möglich sein - aber nicht einfacher." : Albert Einstein

Beiträge gesamt: 212 | Durchschnitt: 0 Postings pro Tag
Registrierung: Aug. 2003 | Dabei seit: 5231 Tagen | Erstellt: 11:00 am 16. Nov. 2006
TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


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:


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5420 Tagen | Erstellt: 11:03 am 16. Nov. 2006
E1nste1n
aus BERLIN
offline


Basic OC
14 Jahre dabei !

AMD Athlon 64 X2 Dual Core
2200 MHz @ 2640 MHz
46°C mit 1.400 Volt


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 ;)


"Alles sollte so einfach wie möglich sein - aber nicht einfacher." : Albert Einstein

Beiträge gesamt: 212 | Durchschnitt: 0 Postings pro Tag
Registrierung: Aug. 2003 | Dabei seit: 5231 Tagen | Erstellt: 11:22 am 16. Nov. 2006
Jim
aus Bayrischer Dschungl
offline



OC God
15 Jahre dabei !


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!


in hoc signo vinces

Beiträge gesamt: 3472 | Durchschnitt: 1 Postings pro Tag
Registrierung: Juni 2002 | Dabei seit: 5646 Tagen | Erstellt: 11:25 am 16. Nov. 2006
TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


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:


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5420 Tagen | Erstellt: 11:26 am 16. Nov. 2006
TheOne
aus Selm
offline



OC God
14 Jahre dabei !

Intel Core 2 Duo
2800 MHz @ 3300 MHz
55°C mit 1.20 Volt


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
Code
public void Besitzer (Person p1)
 {
   besitzer = p1;
   p1.Konto (this);
 }


Methode in Person:
Code
public 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:


TheOne ist im Forum jetzt One

Beiträge gesamt: 9938 | Durchschnitt: 2 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5420 Tagen | Erstellt: 11:41 am 16. Nov. 2006
Jack the Ripper
offline



Real OC or Post God !
14 Jahre dabei !

AMD Phenom II
2300 MHz


Um im Konto den Besitzer zu setzen rufste den Dienst "Besitzer" im Konto auf mit dem OBJEKT-Namen des gewünschten Besitzer als Parameter:

Code

K1.Besitzer(P1);



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:

k1.Besitzer (this);



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)

Beiträge gesamt: 28014 | Durchschnitt: 5 Postings pro Tag
Registrierung: Feb. 2003 | Dabei seit: 5428 Tagen | Erstellt: 12:42 am 16. Nov. 2006