• informatik-forum.net/attachment/24434/informatik-forum.net/attachment/24435/

    Hey Leute ich brauche eure Hilfe, weil ich wirklich kaum was verstehe in der Programmierung, egal wieviel ich lerne. Ich habe folgende LÖsung

    Konstruktor

    GrundrechenArtenA(int x,int y)
    this.x=x
    this.y=y

    Bildschirmausgabe
    Addition4
    Substraktion -2
    Division 0
    Multiplikation 21

    public static void main (String args []{
    GrundRechenArten ob1= new GrundRechenArten(3,7);
    ob1.addieren (1,3);
    ob1.subtrahieren (1,3);
    ob1.dividieren (ob1.x, ob1.y);
    ob1.mutliplizieren (ob1.x, ob1.y);

    -Bei der Bildschirmausgabe bin ich mir eig. ganz sicher, das sie richtig sind.

    -Leider verstehe ich das mit den Konstruktoren nicht ( auch nach mehrmaligem lesen) und vorallem warum das "this" dazu kommt.

    Und von wo das ob1 herkommt bei " GrundRechenArten ob1= new GrundRechenArten(3,7)" und wieso bei ob1.dividieren (ob1.x, ob1.y);
    ob1.mutliplizieren (ob1.x, ob1.y);

    nicht einfach ob1.dividieren (1,3)
    ob1.mutliplizieren ( 1,3)

    steht.


    Ich danke euch und hoffe ihr könnt mir helfen

  • 1. Formal: this ist eine Referenz auf das aktuelle Objekt. Wenn du ob1.addieren(..) aufrufst, ist this innerhalb von addieren ob1.

    Gebraucht wird this vor allem in folgender Situation:

    Code
    class Foo {
      int [color=red][b]x[/b][/color];
    
    
      public Foo(int [color=blue][b]x[/b][/color]) {
        [color=blue][b]x[/b][/color] = [color=blue][b]x[/b][/color]; //tut nichts
        this.[color=red][b]x[/b][/color] = [color=blue][b]x[/b][/color];
      }
    }


    (Durch die Farben deute ich an, welches der beiden x jeweils verwendet wird)

    Der Konstruktor setzt die Objektvariablen x und y, also die x und y, die direkt in der Klasse definiert sind und nicht innerhalb einer Methode. (Wenn dich das verwirrt: verständlich. Das Programm benutzt einige Konzepte, die Programmieranfänger eig noch nicht kennen/verstehen können)

    2. Bei der Bildschirmausgabe fehlt ein Leerzeichen nach "Addition" ;)

    3. Wenn deine Klasse "GrundRechenArtenA" heißt, muss sie auch in der main-Methode so bezeichnet werden, also "GrundRechenArtenA ob1= new GrundRechenArtenA(3,7);"

    4. ob1 ist ein Objekt der Klasse GrundRechenArtenA mit x=3 und y=7. "ob1.dividieren (ob1.x, ob1.y);" heißt "Rufe die dividieren-Methode von ob1 mit dem x von ob1 und dem y von ob1 als Parametern auf"
    "ob1.dividieren (1,3)" würde auch funktionieren, entspricht aber nicht der Angabe.


    Ich hoffe, das beantwortet mehr Fragen als es aufwirft :)

    Ex-PP-Tutor und genereller [strike]Besser[/strike]Schlechterwisser

  • "entspricht nicht der Angabe " .


    Erst mal vielem dank für deine Antwort , das bringt mir extrem viel.

    Von wo erkennst du das es der Angabe nicht entspricht. Welche Grundlagen sollte ich denn drauf haben im das alles einigermaßen zu verstehen

  • "Lassen Sie das Objekt die Methoden dividieren() und multiplizieren() durchführen. Übergeben Sie dazu den Methoden Instanzvariablen als Argumente". (Objekt und Instanz sowie Parameter und Argumente bedeuten jeweils das gleiche, falls das nicht klar ist)

    Um das Programm komplett zu verstehen, sollten die Grundlagen von objektorientierter Programmierung bekannt sein, das heißt was Klassen, Objekte, Methoden und Konstruktoren sind und wie man sie benutzt. Das Grundrechenarten-Beispiel kommt typischerweise etwas vor diesen Themen, wenn erst mal Variablen und Output erklärt werden sollen.

    Ex-PP-Tutor und genereller [strike]Besser[/strike]Schlechterwisser

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!