carookee - group communication for you
Home / JavaForum / Beginner
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
3.756 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 1976 von 2963 (67%) |<   <   >   >|

Autor Jörg Ottermann
Datum 28.04.02, 23:26
Betreff Re: Ausgabe von Bruechen (Java)


In der Klasse Ausgabe rufst Du bruch.ausgabe() auf. Diese Methode existiert aber nicht, denn es gibt nur eine Methode ausgabe, die als Parameter ein Objekt vom Typ Bruch1 erwartet. Es müßte also bruch.ausgabe(bruch1); heißen. Das gleiche gilt für die beiden folgenden Methodenaufrüfe.

Zudem brauchst Du im Grunde nur eine Klasse Bruch (statt den drei Bruch-Klassen, die Du verwendest).
Das Schöne an der OOP ist ja, daß man sich viel Arbeit ersparen kann. Hab grad nen bißchen Zeit, deswegen führ ich das mal ein wenig weiter aus ;-)

Die Klassen Bruch1 und Bruch2 sind ja ziemlich identisch. Kein Wunder, es sind ja beides Brüche. g. Eine Klasse ist ja quasi vergleichbar zu einer Blaupause zu einem Haus. Möchte man identische Häuser bauen, braucht man auch nur eine Blaupause. Demnach kann man auch eine generelle Klasse Bruch anlegen. Die Methoden Deiner Klasse Bruch kann man da auch direkt reinpacken, weil sie ja nur Methoden beinhaltet, die sich mit der Ausgabe eines Bruches auseinandersetzen. Du änderst also Dein Hauptprogramm (die Klasse Ausgabe) nicht so, wie ich es vorgeschlagen habe, sondern benutzt statt Deiner ursprünglichen Bruch-Klassen, folgende:

class Bruch
{
    private int nenner, zaehler;
    
    public Bruch (int zaehler, int nenner)
    {
        this.zaehler = zaehler;
        this.nenner = nenner;
    }
    
    public int getZaehler()
    {
        return zaehler; // this ist hier überflüssig
    }
    
    public int getNenner()
    {
        return nenner; // hier auch
    }
    
    public void ausgabe()
    {
        System.out.println("Bruch: "+zaehler+"/"+nenner);
    }
}


Die anderen Ausgabe-Methoden kannst Du auch noch mit reinpacken, aber eigentlich haben solche Ausgabe-Methoden in der Klasse nix zu suchen (ist einfach unschön (OOP-technisch), es sei denn, man übergibt der Methode einen Ausgabestrom, aber damit wollen wir gar nicht erst anfangen, weil dann Dein Lehrer auf jeden Fall peilt, daß der Code nicht von Dir sein kann ;-))
Nunja, nun haben wir die drei Klassen zu einer einzigen geschrumpft, aber was bringt uns das?
Schreiben wir uns mal eben das Hauptprogramm zur Verdeutlichung:

public class Ausgabe
{
    public static void main( String[] wurscht)
    {
        Bruch b1 = new Bruch(2,5);
        Bruch b2 = new Bruch(1,6);
        b1.ausgabe();
        b2.ausgabe();
    }
}


Wir erzeugen zunächst zwei Bruch-Objekte, dem einen geben wir 2/5tel mit, dem anderen 1/6tel. Und ganau das wird auch ausgegeben.
In der dritten Anweisung (b1.ausgabe();) wird "Bruch: 2/5" ausgegeben, weil ja im Objekt b1 der zaehler 2 und der Nenner 5 ist. Im Objekt b2 wird "Bruch: 1/6" ausgegeben, weil wir diesem Objekt über den Konstruktor den Zaehler 1 und den Nenner 6 mitgegeben haben.

So, ich hoffe, ich habe keinen Tippfehler gemacht und das ganze läßt sich so kompilieren ;-)

Wenn noch Fragen auftauchen... einfach fragen...

Gruß,

Jörg


Diskussionsverlauf:
Ausgabe von Bruechen (Java)
            Gute Idee...
    Re: Ausgabe von Bruechen (Java)
        Re: Ausgabe von Bruechen (Java)

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com