Bin zwar Java-noob...
Geizhals » Forum » Programmierung » kleines Ausgabeproblem in Java ... (31 Beiträge, 218 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: kleines Ausgabeproblem in Java ...  (Somnatic am 30.10.2006, 23:07:21)
..  Re(2): kleines Ausgabeproblem in Java ...  (kracker am 30.10.2006, 23:20:16)
. Vom Autor zurückgezogen oder Autor hat seine Registrierung nicht bestätigt  (Nagelfar am 30.10.2006, 23:21:54)
... Vom Autor zurückgezogen oder Autor hat seine Registrierung nicht bestätigt  (Nagelfar am 30.10.2006, 23:33:19)
..... Vom Autor zurückgezogen oder Autor hat seine Registrierung nicht bestätigt  (Nagelfar am 31.10.2006, 16:32:54)
.. Vom Autor zurückgezogen oder Autor hat seine Registrierung nicht bestätigt  (Nagelfar am 31.10.2006, 00:38:57)
.
Bin zwar Java-noob...
31.10.2006, 10:46:21
... also nimm nicht alles ernst oder für richtig, was ich schreibe.

Ich sag nur, was mir auffällt - ohne gewähr.

1.) Mich wundert, daß das Ding überhaupt kompiliert.
Du hast a und b als Klassenvariablen und greifst via this darauf zu. this ist aber IMHO für den Zugriff auf die lokale Objektvariable - also ich hätte statt this.a ein Complex.a verwendet - wenn es Klassenvariablen sein müssen.

2.) Dein Constructor wirkt strange.
- Zuerst initialisierst deine Klassenvariablen static int a=0
- Dann rufst den Constructor auf um die Klassenvariablen neu zu initialisieren - und übergibst ihm die Klassenvariablen selbst ?
Ich würde 2 Construtoren bauen: einen a la "Complex() {};" und einen a wie deinen - nur daß ich a und b eben als Objektvariablen gelassen hätte.

3.) Zugriffsrechte:
a und b hätte ich als private gelassen

4.) a cat is a cat is a cat .... Den Scanner hätte ich nicht als Attribut von Complex gesehen - den kann man nach main werfen

5.) Deine Ausgabe:
System.out.println(ausgabe) hätte es auch getan

6.) ausgabe.add(ausgabe1) - wo kommt ausgabe1 daher ???

7.) Ist es so gedacht, daß für jeden Schleifendurchlauf ein neues Objekt erzeugt wird ??? (das dann aber die Klassenvariablen shared) ?
Nachdem ausgabe1 aber ein Complex sein muß - werden ja bei der Initialisierung von dem Ausgabe1-Objekt auch deine Klassenvariablen überschrieben, oder ??? Also auch quasi "a" und "b" von deiner lokalen Klasse, oder ?

Die Scannerklasse kenn ich nicht - ich würde es aber grob so angehen (ungetestet - also Achtung!)


public class Complex{
                private int a = 0;
                private int b = 0;

                public Complex()
                {
                        this.a = real;
                        this.b = imag;
                }

                public Complex(int real, int imag){
                        this.a = real;
                        this.b = imag;
                }
                public String toString(){
                        return "(" + this.a + ";" + this.b + ")";
                }
                public void add(Complex c){
                        this.a += c.a;
                        this.b += c.b;
                }
                public void sub(Complex c){
                        this.a -= c.a;
                        this.b -= c.b;
                }
       public static void main(String args[]){
                static Scanner sc = new Scanner(System.in);
                Complex ausgabe=new Complex();

                while(sc.hasNext()){
                        a = sc.nextInt();
                        b = sc.nextInt();
                        ausgabe.add(ausgabe1); // woimmer das auch herkommt.
                System.out.println(ausgabe);

                }

        }
}



Und natürlich sollte man statt a und b sprechendere Namen vergeben ;-)

31.10.2006, 10:48 Uhr - Editiert von Linux_Sucks, alte Version: hier
[ Dieser Beitrag wurde inzwischen editiert. Die aktuelle Version befindet sich hier. ]
Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
.  Bin zwar Java-noob...  (Linux_Sucks am 31.10.2006, 10:46:21)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung