Objekte in Methoden?

Diskutiere Objekte in Methoden? im Java Basics - Anfänger-Themen Bereich.
G

Gansa

Guten Abend! Ich habe ein Java Programm geschrieben wo ich ein Objekt in der Methode erzeuge und sie auch mit dem ergebnis zurück gebe. Wie kann ich das Programm ausführen lassen in der main? zb erzeuge ich das Objekt in der methode taschenRechner und möchte zwei zahlen bearbeiten addiere sie bspw. Wenn ich in der Main das aufrufe gebe sage ich ja objektname.methode(Übergabeparameter). Wie kann der Aufruf in der Methode erfolgen das was auf meiner Konsole steht? finde dazu explizit nichts im netz..
 
J

Javinner

Der schnellste Weg wird sein, du postest dein Code hier, bitte in Code-Tags.
 
J

Javinner

Java:
public class YouClassDemo
{

    public static void main(String[] args)
    {
         //Hier wird dein Code ausgeführt.
    }

}
 
H

httpdigest

Zeige bitte einmal die vollständige Klasse, in der diese Methode enthalten ist:
Java:
public Fraction multipliziere(Taschenrechner k) {
  return new Taschenrechner(8 * k.zahl, 9 * k.zahl);
}
 
G

Gansa

Zeige bitte einmal die vollständige Klasse, in der diese Methode enthalten ist:
Java:
public Fraction multipliziere(Taschenrechner k) {
  return new Taschenrechner(8 * k.zahl, 9 * k.zahl);
}
Java:
public class Taschenrechner {

    private int numerator;
    private int denominator;






    public Taschenrechner(int numerator, int denominator) {
        this.numerator = numerator;
        this.denominator = denominator;

        System.out.println(this.numerator + "/" +  this.denominator);
    }




    /**
     * Verändert den Zähler eines Bruchs
     * @param numerator Zähler des Bruchs
     */

    public void setNumerator(int numerator){
        this.numerator = numerator;
    }


 

    public void setDenominator(int denominator){
        this.denominator = denominator;
    }


  

    public int getNumerator(){
        return this.numerator;
    }


  

    public int getDenominator(){
        return this.denominator;
    }

 //Instanzmethoden

    public void printFraction(){
        System.out.println(this.numerator + "/" + this.denominator);
    }

 

    public Taschenrechner multiply(){

        return new Taschenrechner(4 * this.numerator, 2 * this.denominator);
    }

So habe es bisschen ausgebessert und sauberer geschrieben (hoffe ich). Ich kann in meiner main eig objekte erstellen aber ich soll das in der Methode machen.. das habe ich auch (hoffe richtig) aber weiss nicht wie ich das Ergebnis auf die konsole bekomme? eine ganz simple und dumme Frage, wie führe ich das jetzt aus .. Hätte ich das objekt ganz normal in der main erzeugt dann wüsste ich Objektname.methode(übergabeparameter). Aber ich soll in der Methode einen neuen Bruch erzeugen und das mit dem ergebnis zurück geben. hoffe ich ich konnte erklären was mein problem ist..
 
H

httpdigest

Java:
public Taschenrechner multiply(){
  return new Taschenrechner(4 * this.numerator, 2 * this.denominator);
}
Was soll denn bitte diese Methode für einen Sinn machen? Beschreibe mal bitte mit eigenen Worten, was diese Methode überhaupt tun soll. Aktuell multipliziert sie den Bruch, auf dem sie aufgerufen wird, einfach mit 2 (Multiplikation des Zählers mit 4 und des Nenners mit 2 - warum auch immer).

Aber, um deine ganz konkrete Frage zu beantworten:
Java:
public static void main(String[] args) {
  new Taschenrechner(2, 3).multiply().printFraction();
}
 
G

Gansa

Was soll denn bitte diese Methode für einen Sinn machen? Beschreibe mal bitte mit eigenen Worten, was diese Methode überhaupt tun soll. Aktuell multipliziert sie den Bruch, auf dem sie aufgerufen wird, einfach mit 2 (Multiplikation des Zählers mit 4 und des Nenners mit 2 - warum auch immer).

Aber, um deine ganz konkrete Frage zu beantworten:
Java:
public static void main(String[] args) {
  new Taschenrechner(2, 3).multiply().printFraction();
}
Dankeschön!!! Ich hatte wirklich keinen plan wie ich das machen soll. Ehrlich gesagt keine Ahnung warum ich das so machen muss, da müsste ich meinen Lehrer fragen ich hatte eigentlich zwei Objekte erstellt mit ünergabeparametern und konnte somit einen Bruch miteinander multiplizieren und ausgeben lassen. Jedoch sollte es dann so sein, das der Bruch in der Methode erstellt wird und das mit dem Ergebnis returnd werden soll. Danke nochmals!
 
H

httpdigest

Hundertprozentig hat dein Lehrer so etwas im Sinn gehabt:
Java:
  public Fraction multiply(Fraction f) {
    return new Fraction(f.numerator * numerator, f.denominator * denominator);
  }
(ich habe den unpassenden Namen "Taschenrechner" mal zu "Fraction" (engl. Bruch) geändert.)

Nutzung:
Java:
public static void main(String[] args) {
  Fraction a = new Fraction(2, 3);
  Fraction b = new Fraction(5, 7);
  Fraction c = a.multiply(b);
  c.printFraction();
}
oder äquivalent:
Java:
public static void main(String[] args) {
  new Fraction(2, 3).multiply(new Fraction(5, 7)).printFraction();
}
 
G

Gansa

Hundertprozentig hat dein Lehrer so etwas im Sinn gehabt:
Java:
  public Fraction multiply(Fraction f) {
    return new Fraction(f.numerator * numerator, f.denominator * denominator);
  }
(ich habe den unpassenden Namen "Taschenrechner" mal zu "Fraction" (engl. Bruch) geändert.)

Nutzung:
Java:
public static void main(String[] args) {
  Fraction a = new Fraction(2, 3);
  Fraction b = new Fraction(5, 7);
  Fraction c = a.multiply(b);
  c.printFraction();
}
oder äquivalent:
Java:
public static void main(String[] args) {
  new Fraction(2, 3).multiply(new Fraction(5, 7)).printFraction();
}
a ist hier sozusagen mein aktuelles objekt und mein b ist das was ich der mehtode mitgebe, wodurch mit a und b rechenoperationen durchgeführt werden können oder? das heisst this.numerator wäre meine 2 und f.getNumerator() die 5? und so werden zwei verschiedene objekte MITEINANDER bearbeitet hab ich das richtig verstanden?
 
H

httpdigest

Interpretiere da nicht so viel hinein. "Zwei verschiedene Objekte miteinander bearbeiten" klingt schon etwas komisch.
Die Methode `multiply` ist einfach eine ganz normale Instanzmethode der Klasse `Fraction` und die Methode besitzt einen Parameter vom Typ `Fraction` und hat als Rückgabetyp ebenfalls `Fraction`.
Was du nun innerhalb einer Methode machst, ist völlig dir überlassen.
Du kannst den (oder auch die) Parameter verwenden oder auch nicht. Und in diesem Fall sollte die Methode vermutlich (du hast ja bisher keine meiner Fragen bezüglich des Sinns der Methode beantwortet) zwei Brüche miteinander multiplizieren und das Ergebnis als neue Bruch-Instanz zurückliefern.
In diesem Fall macht es also Sinn, die Methode so zu implementieren.
Hier wird nichts "bearbeitet". Hier wird einfach ein neues Bruch-Objekt erzeugt und als Konstruktorargumente der neue Zähler und Nenner mitgegeben.
 
G

Gansa

Interpretiere da nicht so viel hinein. "Zwei verschiedene Objekte miteinander bearbeiten" klingt schon etwas komisch.
Die Methode `multiply` ist einfach eine ganz normale Instanzmethode der Klasse `Fraction` und die Methode besitzt einen Parameter vom Typ `Fraction` und hat als Rückgabetyp ebenfalls `Fraction`.
Was du nun innerhalb einer Methode machst, ist völlig dir überlassen.
Du kannst den (oder auch die) Parameter verwenden oder auch nicht. Und in diesem Fall sollte die Methode vermutlich (du hast ja bisher keine meiner Fragen bezüglich des Sinns der Methode beantwortet) zwei Brüche miteinander multiplizieren und das Ergebnis als neue Bruch-Instanz zurückliefern.
In diesem Fall macht es also Sinn, die Methode so zu implementieren.
Hier wird nichts "bearbeitet". Hier wird einfach ein neues Bruch-Objekt erzeugt und als Konstruktorargumente der neue Zähler und Nenner mitgegeben.
Okay ich denke manchmal versuch ich alles im detail zu verstehen. Den sinn habe ich selber wahrscheinlich nicht genau verstanden weshalb ich keine genaue antwort drauf habe. Das war eigentlich genau die Aufgabenstellung. Wahrscheinlich zur übung denke ich mal.. vielen dank hat mir sehr viel weitergeholfen :D
 
Thema: 

Objekte in Methoden?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben