Methoden implementieren, Sichtbarkeiten, Brüche

OPMajor

Aktives Mitglied
Hi
ich brauche etwas Hilfe bei einer Aufgabe.
Ich soll eine Klasse Fraction erstellen; diese hat als Attribute Zähler und Nenner, die nur in der Klasse sichtbat sind.
Ich soll Methoden schreiben zum
- addieren
- multiplizieren
- umrechnen in eine Fließkomma-Zahl
- Kehrwert bilden
- umrechnen in einen äquivalenen reduzierten Bruch(größter gemeinsamer Teiler-Algorithmus?; soll mit einer while-Schleife implementiert werden)

Den Methoden zum addieren und multiplizieren soll ein Objekt vom Typ Fraction übergeben werden.

Mein Anfang:
Java:
public class Fraction {
   public static void main(String[] args) {
   double zähler;
   double nenner;
   addieren();

}
   public static void addieren() {
       ergebnis=zähler + nenner //Geht es darum 2 Brüche zu addieren oder Zähler und Nenner?
   }
   public static void multiplizieren() {
       
   }
   public static void umrechnenFließkommaZahl(){
       
   }
   public static void kehrwertbilden() {
       
   }
   public static void umrechnen() {
       
   }
   
   }

Muss ich vor den Attributen private schrieben, um sie nur in der Klasse sichtbar zu machen?
Ist das mit dem Addieren so richtig, was ich geschrieben habe?
 

SchwarzWeiß

Bekanntes Mitglied
Attribute sollten (fast) immer private sein, ja. Aber momentan sind das keine Attribute sondern lokale Variablen in der Main-Methode. Ich würde die Main-Methode in eine eigene Klasse machen und dort dann die Fraction-Klasse benutzen. Dann brauchst du noch einen Konstruktor mit zähler und nenner als Parameter bzw. Setter-Methoden. Und die Methoden dann nicht mehr als static definieren.
 

Robat

Top Contributor
Ich würde die addieren - Methode so interpretieren, dass ein andere Bruch übergeben wird, welcher zu dem Bruch addiert werden soll.
Steht irgendwo in der Aufgabenstellung, dass die Methoden static sein sollen oder hast du das so gemacht? Diese als static zu deklarieren ergibt in meinen Augen nicht viel Sinn.
 

OPMajor

Aktives Mitglied
Ich würde die addieren - Methode so interpretieren, dass ein andere Bruch übergeben wird, welcher zu dem Bruch addiert werden soll.
Steht irgendwo in der Aufgabenstellung, dass die Methoden static sein sollen oder hast du das so gemacht? Diese als static zu deklarieren ergibt in meinen Augen nicht viel Sinn.
Ich war das.
 

OPMajor

Aktives Mitglied
Sieht das schon besser aus?
Java:
public class A {
   public static void main(String[] args) {
       public class Fraction{
           Fraction f=new Fraction();
   private double zähler;
   private double nenner;
   f.addieren();

}
   public double addieren() {
       ergebnis=zähler/nenner + zähler/nenner
               return;
   }
   public  double multiplizieren() {
       return;
   }
      
   }
   public  double umrechnenFließkommaZahl(){
       return;
   }
   public static double kehrwertbilden() {
       return;
   }
   public static double umrechnen() {
       return;
   }
  
   }
 

Robat

Top Contributor
Das ist mir schon klar ;)
Jetzt bist du an der Reihe zu überlegen warum das so ist. Tipp: Überleg dir noch mal wie so eine Java-Klasse aufgebaut sein muss. Wo Methoden deklariert werden könnten etc.
 

OPMajor

Aktives Mitglied
So weit bin ich jetzt:
Java:
public class Fraction {
   public static void main(String[] args) {}
       public class Fraction1{
           Fraction1 f=new Fraction1();
   
   f.addieren();

}
   public double addieren() {
       private double zähler;
       private double nenner;
       double ergebnis=zähler/nenner + zähler/nenner
               return ergebnis;
   
   public  double multiplizieren() {
       
   }return;
       
   }
   public  double umrechnenFließkommaZahl(){
       return;
   }
   public  double kehrwertbilden() {
       return;
   }
   public  double umrechnen() {
       return nenner;
   }
 

OPMajor

Aktives Mitglied
Ist das besser:
Java:
public class Fraction {
   public static void main(String[] args) {}
       public class Fraction1{
           Fraction1 f=new Fraction1();
   
   

}
   public double addieren() {
       private double zähler;
       private double nenner;
       double anderezahl;
       double ergebnis = zähler/nenner + anderezahl;
               return ergebnis;
               
   
   public  double multiplizieren() {
       
   return;
       
   }
   public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
   }
   public  double kehrwertbilden() {
       
           
   }
       return;
   }
   public  double umrechnen() {
       return nenner;
   }
   
   }
 

Robat

Top Contributor
Hier habe mal versucht den Code so zu formatieren wie es üblich ist.. soweit es ging.
Fällt dir nicht selber auch auf dass du tw. Code drin hast der so nicht compilieren kann?

- Befehle außerhalb von Methoden,
- Methodendeklaration außerhalb von Klassen,..
- Fehlende / falsch gesetzte Klammern

Java:
public class Fraction {

    public static void main(String[] args) {   
    }
       
    public class Fraction1 {
        Fraction1 f=new Fraction1();
   
    }
   
   public double addieren() {
        private double zähler;
        private double nenner;
        double anderezahl;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
               
   
    public  double multiplizieren() {
       return;   
    }
   
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
   
    public  double kehrwertbilden() {
    }
       
   return;
}
   
   public  double umrechnen() {
       return nenner;
   }
   
   }
 

Robat

Top Contributor
@Javinner
Ich weiß, dass einige Methoden so noch nicht richtig sind.
Es bringt allerdings nichts jetzt schon auf so etwas "rumzuhacken" wenn die Formatierung / syntaktische Schreibweise nicht stimmt ;)
 

OPMajor

Aktives Mitglied
Wie sieht es damit aus?
Java:
public class Fraction {
    double zähler;
     double nenner;

    public static void main(String[] args) {  
       Fraction f=new Fraction();
        f.addieren();
        f.multiplizieren();
        f.umrechnenFließkommaZahl();
        f.kehrwertbilden();
        f.umrechnen();
    }
       
 
   

   public class Fraction1 {
       
       
   
    }
   
   public double addieren() {
       
        double anderezahl = ;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
   }
               
   
    public double multiplizieren() {
       
         double anderezahl1;
         double ergebnis1 = zähler/nenner + anderezahl1;
       return ergebnis1;
    }
         
   
   
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
   
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
   
       
   return ergebnis3;
}
   
    double umrechnen() {
       return ;
   }
   
   }
 

OPMajor

Aktives Mitglied
Diesen Code kann ich zumindest schon compilieren:
Java:
public class Fraction {
    double zähler =1;
     double nenner = 3;

    public static void main(String[] args) { 
       Fraction f=new Fraction();
        double x=f.addieren();
        double y=f.multiplizieren();
        f.umrechnenFließkommaZahl();
        f.kehrwertbilden();
       // f.umrechnen();
      
        System.out.println(x);
        System.out.println(y);
    }
      
 
  

   public class Fraction1 {
      
      
  
    }
  
   public double addieren() {
      
        double anderezahl = 2;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
   }
              
  
    public double multiplizieren() {
      
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1;
       return ergebnis1;
    }
        
  
  
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
  
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
  
      
   return ergebnis3;
    }
  
}
  
    /**double umrechnen() {
       return ;
   }
  
   }
  
  
*/
Konsole
2.3333333333333335
0.6666666666666666
 

Meniskusschaden

Top Contributor
Du solltest dir vielleicht auch ein paar Gedanken darüber machen, was man von einer Klasse zur Abbildung von Brüchen eigentlich erwartet. Wie würdest du mit deiner Klasse z.B. die Rechnung 2/3 + 3/4 ausführen? Also wie erzeugst du die Brüche 2/3 und 3/4? Wie rufst du deren Addition auf? Und erwartet man von einer Fraction-Klasse wirklich, dass sie als Ergebnis eine Gleitkommazahl liefert?
 

SchwarzWeiß

Bekanntes Mitglied
Wolltest du nicht die Attribute als private deklarieren? Und wie schon gesagt, die main-Methode gehört nicht in eine Fachklasse. Erstelle eine eigene Main-Klasse dann ist das ganze viel lesbarer. So kann das nicht objektorientiert sein, du brauchst ja am Ende mindestens zwei Fraction-Objekte und da macht das kein Sinn, wenn jede davon eine main-Methode hat. Du darfst den Attributen auch nicht die Werte direkt zuweisen, sonst hat ja jeder Bruch die gleichen Zahlen. Wie gesagt, entweder ein parametrierter Konstruktor oder setter-Methoden.

Und was soll das sein?

Java:
   public class Fraction1 {
  
    }
 
Zuletzt bearbeitet:

Robat

Top Contributor
Mal kurz zusammengefasst, was du schon hast:

Du sollst die Attribute zaehler und nenner die nur in der Klasse sichtbar sind anlegen. Die Attribute hast du zwar angelegt, sind aber noch außerhalb der Klasse sichtbar.
Die Struktur der Klasse sieht jetzt soweit richtig aus. Jetzt gilt es die Methoden richtig anzulegen.
Überleg dir mal bei welchen Methoden es sind hat etwas zurückzugeben (wenn ja was) oder ob es Methoden gibt die eventuell nur das Objekt, auf dem die Methode aufgerufen wird, verändern und nichts zurückgeben. (Als kleines Beispiel würde ich hier die add-Methode nehmen welche mMn nur das eigentliche Objekt mit dem übergebenen addieren soll).
Versuch also erstmal die Methodensignaturen aufzuschreiben (ohne eigentliche Implementierung). Mach dir klar welche Methode was machen soll.
 

temi

Top Contributor
Ich möchte dich nicht verwirren, aber als zusätzliche Information für später in deinem Programmiererleben:
Variablen in Java haben einen Gültigkeitsbereich. Wenn du innerhalb einer Funktion Variablen erzeugst, verlieren diese spätestens am Ende der Funktion ihre Gültigkeit und werden wieder zerstört. Aus diesem Grund ist es nicht notwendig die Variablen für das Ergebnis in unterschiedlichen Funktionen unterschiedlich zu benennen.

Java:
   public double addieren() {
        double anderezahl = 2;
        double ergebnis = zähler/nenner + anderezahl; // Hier wird eine Variable Ergebnis lokal erzeugt
        return ergebnis;
   } // hier verliert sie ihre Gültigkeit

    public double multiplizieren() {
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1; // dito lokale Variable Ergebnis1
         return ergebnis1;
    } // Ende der Gültigkeit
 
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler; // und Ergebnis3
       return ergebnis3;
    } // Ende der Gültigkeit
[/QUOTE]

Aus dem obigen Beispiel: Die Funktion "multiplizieren" "weiß" nichts von der Variablen "ergebnis" aus der Funktion "addieren". Du kannst die Variablen demnach in allen Funktionen gleich benennen. Das erhöht die Lesbarkeit im Gegensatz zu "ergebnis123".

Noch ein kleines Beispiel zur Verdeutlichung:
Java:
public void doSomething() {
   int foo = 0; // Variable foo deklarieren und initialisieren
   for (int i = 0; i < 10; ++i) {
      foo = foo + i; // foo ist hier bekannt, weil sie in einem höheren Gültigkeitsbereich erzeugt wurde
      int bar = foo; // bar deklarieren und initialisieren
      } // hier endet der Gültigkeitsbereich von bar
   println(foo); // foo ist noch im Gültigkeitsbereich
   println(bar); // Fehler: bar ist hier nicht bekannt
   } // hier endet der Gültigkeitsbereich von foo
 

OPMajor

Aktives Mitglied
Mal kurz zusammengefasst, was du schon hast:

Du sollst die Attribute zaehler und nenner die nur in der Klasse sichtbar sind anlegen. Die Attribute hast du zwar angelegt, sind aber noch außerhalb der Klasse sichtbar.
Die Struktur der Klasse sieht jetzt soweit richtig aus. Jetzt gilt es die Methoden richtig anzulegen.
Überleg dir mal bei welchen Methoden es sind hat etwas zurückzugeben (wenn ja was) oder ob es Methoden gibt die eventuell nur das Objekt, auf dem die Methode aufgerufen wird, verändern und nichts zurückgeben. (Als kleines Beispiel würde ich hier die add-Methode nehmen welche mMn nur das eigentliche Objekt mit dem übergebenen addieren soll).
Versuch also erstmal die Methodensignaturen aufzuschreiben (ohne eigentliche Implementierung). Mach dir klar welche Methode was machen soll.
Also die Methoden addieren und multiplizieren verändern das Objekt bloß?
 

OPMajor

Aktives Mitglied
Wolltest du nicht die Attribute als private deklarieren? Und wie schon gesagt, die main-Methode gehört nicht in eine Fachklasse. Erstelle eine eigene Main-Klasse dann ist das ganze viel lesbarer. So kann das nicht objektorientiert sein, du brauchst ja am Ende mindestens zwei Fraction-Objekte und da macht das kein Sinn, wenn jede davon eine main-Methode hat. Du darfst den Attributen auch nicht die Werte direkt zuweisen, sonst hat ja jeder Bruch die gleichen Zahlen. Wie gesagt, entweder ein parametrierter Konstruktor oder setter-Methoden.

Und was soll das sein?
Kann ich nicht einen Scanner verwenden für die Zahlen?
Ich soll jetzt in einem ganz neuen Fenster eine neue Klasse erstellen, oder?
 

SchwarzWeiß

Bekanntes Mitglied
Kann ich nicht einen Scanner verwenden für die Zahlen?
Ich soll jetzt in einem ganz neuen Fenster eine neue Klasse erstellen, oder?
Du kannst einen Scanner verwenden, ja. Aber trotzdem müssen die Zahlen die du vom Scanner hast auch irgendwie ins Objekt, daher setter oder parametrierter Konstruktor.
Ja genau und da drin ist einfach nur die main-Methode.
 

temi

Top Contributor
Ich soll jetzt in einem ganz neuen Fenster eine neue Klasse erstellen, oder?

Genau. Du solltest zwei separate Klassen haben. Eine, die die "static main" enthält und in der du später deine Fraction-Objekte erstellst, addierst, Eingaben verarbeitest, Ausgaben machst usw.
Und eine Klasse Fraction.

Diese beiden Klassen sollten in je einer separaten Quelltext-Datei sein.
 

OPMajor

Aktives Mitglied
So?
Java:
import java.util.Scanner;


public class Fraction {
    double zähler =1;
     double nenner = 3;

   
   
   public double addieren() {
       
        double anderezahl = 2;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
   }
               
   
    public double multiplizieren() {
       
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1;
       return ergebnis1;
    }
         
   
   
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
   
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
   
       
   return ergebnis3;
    }
   
}
   
    /**double umrechnen() {
       return ;
   }
   
   }
   
   
*/

Java:
public class A {
    public static void main(String[] args) {  
           Fraction f=new Fraction();
            double x=f.addieren();
            double y=f.multiplizieren();
            f.umrechnenFließkommaZahl();
            f.kehrwertbilden();
           // f.umrechnen();
           
            System.out.println(x);
            System.out.println(y);
       }
}
 

Robat

Top Contributor
@OPMajor
Kleiner Rat meiner Seits: Dir dir auf jeden Fall noch mal ein gutes Buch / Tutorial zur Hand nehmen und die Grundlagen durchgehen.

B2T:
Du hast weder einen Konstruktor eingefügt, noch den Methoden Parameter gegeben, noch die Attribute privat gemacht.
 

OPMajor

Aktives Mitglied
Java:
import java.util.Scanner;


public class Fraction {
   Scanner eingabe= new Scanner (System.in);
   
   
    private double zähler =eingabe.nextDouble();
     private double nenner = eingabe.nextDouble();
   
     

   
   
   
   
public double addieren( double zähler,double nenner ) {
       
        double anderezahl = 2;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
   }
               
   
    public double multiplizieren(double zähler,double nenner) {
       
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1;
       return ergebnis1;
    }
         
   
   
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
   
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
   
       
   return ergebnis3;
    }
   
}
   
    /**double umrechnen() {
       return ;
   }
   
   }
   
   
*/

Java:
public class A {
    public static void main(String[] args) {  
           Fraction f=new Fraction();
            f.addieren(0, 0);
            f.multiplizieren(0, 0);
            f.umrechnenFließkommaZahl();
            f.kehrwertbilden();
           // f.umrechnen();
           
           
           
       }
}
 

JStein52

Top Contributor
Ich kenne ja die Aufgabenstellung nicht, die hast du ja nicht so genau gepostet. Aber für mich sind alle deine Methoden (addieren, subtrahieren, multiplizieren und dividieren) im Ansatz falsch. Für mein Begriffe sollst du wahrscheinlich jeweils zwei Brüche addieren, subtrahieren usw. und als Ergebnis jeweils einen neuen Bruch zurückliefern. Schreibst du ja ansatzweise im ersten Post dass addieren einen Bruch als Parameter kriegen soll.
 

JStein52

Top Contributor
Und ja ich weiss, man kann einen Bruch auch als 3.14/2.09 schreiben aber üblicherweise sind Zähler und Nenner doch ganze Zahlen, d.h. deine Attribute sollten wohl vom Typ int sein ?? Oder wie bestimmst du den ggT bzw. wie wolltest du kürzen ? ggt = 0.001 ??
 

OPMajor

Aktives Mitglied
Ich kenne ja die Aufgabenstellung nicht, die hast du ja nicht so genau gepostet. Aber für mich sind alle deine Methoden (addieren, subtrahieren, multiplizieren und dividieren) im Ansatz falsch. Für mein Begriffe sollst du wahrscheinlich jeweils zwei Brüche addieren, subtrahieren usw. und als Ergebnis jeweils einen neuen Bruch zurückliefern. Schreibst du ja ansatzweise im ersten Post dass addieren einen Bruch als Parameter kriegen soll.
Aufgabe:
A03.3: Brüche
Erstellen Sie eine Klasse Fraction, als Attribute hat diese Klasse Zähler und Nenner, die nur in der Klasse sichtbar sind.
Schreiben Sie Methoden zum addieren, multiplizieren, umrechnen in eine Fließkomma-Zahl, kehrwert bilden und zum
umrechnen in einen äquivalenten reduzierten Bruch (benutzen Sie hier den in der Vorlesung vorgestellten Algorithmus,
implementieren Sie diesen mit Hilfe einer while-Schleife). Den Methoden zum addieren und multiplizieren wird dabei
ebenfalls ein Objekt vom Typ Fraction übergeben.
Ziel: Methoden implementieren

Der Algorithmus ist im Anhang.
 

Anhänge

  • Algorithmus.PNG
    Algorithmus.PNG
    17,5 KB · Aufrufe: 38
  • Algorithmus_.PNG
    Algorithmus_.PNG
    13,3 KB · Aufrufe: 48
Zuletzt bearbeitet:

OPMajor

Aktives Mitglied
Muss im Konstruktor nicht auch double hin anstatt int?
Java:
import java.util.Scanner;


public class Fraction {
   Scanner eingabe= new Scanner (System.in);
  
  
    private double zähler =eingabe.nextDouble();
     private double nenner = eingabe.nextDouble();
    
     public Fraction(int zähler, int nenner){
        this.zähler = zähler;
        this.nenner = nenner;
        }
    
    

  
  
  
  
public double addieren( double zähler,double nenner ) {
      
        double anderezahl = 2;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
   }
              
  
    public double multiplizieren(double zähler,double nenner) {
      
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1;
       return ergebnis1;
    }
        
  
  
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
  
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
  
      
   return ergebnis3;
    }
  
}
  
    /**double umrechnen() {
       return ;
   }
  
   }
  
  
*/
 

JStein52

Top Contributor
Dann hast du jetzt einen Konstruktor der Zähler und Nenner als Parameter übergeben kriegt und du weist diese Werte den entsprechenden Attributen zu.
 

JStein52

Top Contributor
Dann geben wir jetzt Gas bevor das Wintersemester um ist. Die Methode addiere sieht dann so aus:

Code:
public Fraction addiere(Fraction bruch) {
...
...
}

Edit: wie addiert man zwei Brüche ??
 

OPMajor

Aktives Mitglied
Java:
public class Fraction {
    private int zähler =x;
     private int nenner = y;
    
     public Fraction(int zähler, int nenner){
      
        this.zähler = zähler;
        this.nenner = nenner;
        }
    
    

  
  
  
  
public Fraction addieren( Fraction zähler/nenner ) { //hier zeigt es mir bei nenner einen Fehler an
      
        double anderezahl = 2;
        double ergebnis = zähler/nenner + anderezahl;
        return ergebnis;
   }
              
  
    public double multiplizieren(double zähler,double nenner) {
      
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1;
       return ergebnis1;
    }
        
  
  
    public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
  
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
  
      
   return ergebnis3;
    }
  
}
  
    /**double umrechnen() {
       return ;
   }
  
   }
  
  
*/
Java:
import java.util.Scanner;

public class A {
    public static void main(String[] args) { 
      
      
           Fraction f=new Fraction(0, 0);
           Scanner eingabe= new Scanner (System.in);
            int x =eingabe.nextInt();
             int y = eingabe.nextInt();
          
          
            f.addieren(0, 0);
            f.multiplizieren(0, 0);
            f.umrechnenFließkommaZahl();
            f.kehrwertbilden();
           // f.umrechnen();
          
          
          
       }
}
 

JStein52

Top Contributor
Konstruktor ist richtig aber addieren ist falsch. Die soll einen Bruch als Parameter erhalten !!
Und man addiert dann zwei Brueche indem man den Hauptnenner bildet, die Zaehler jeweils erweitert und dann addiert.
 

SchwarzWeiß

Bekanntes Mitglied
Du sollst ein Objekt mitgeben. Also kein "/", kein Nenner, kein Zähler, einfach nur ein Fraction-Objekt wie es JStein52 schon gepostet hat.
Und reduzier mal die große Lücke im Code nach dem Konstruktor.
 

JStein52

Top Contributor
Code:
    public Fraction addiere(Fraction b) {
        // Hauptnenner bilden
        int common = hauptNenner(this.nenner, b.nenner);
        // zwei neue Brüche anlegen die dann passend erweitert werden
        Fraction commonA = new Fraction();
        Fraction commonB = new Fraction();
        commonA = erweitern(common);
        commonB = b.erweitern(common);
        // neuen Bruch anlegen fuer das Ergebnis
        Fraction sum = new Fraction();
        // berechne die Summe
        sum.zaehler = commonA.zaehler + commonB.zaehler;
        sum.nenner = common;
        // hier könnte man jetzt noch kuerzen

        return sum;
    }


Code:
    private int hauptNenner(int nenner1, int nenner2) {
        int factor = nenner1;
        while ((nenner1 % nenner2) != 0) {
            nenner1 += factor;
        }
        return nenner1;
    }
Code:
    private Fraction erweitern(int common) {
        Fraction result = new Fraction();
        int factor = common / this.nenner;
        result.zaehler = this.zaehler * factor;
        result.nenner = common;
        return result;
    }

Das wäre jetzt der Code zum addieren.
 

OPMajor

Aktives Mitglied
Java:
import java.util.Scanner;


public class Fraction {
    private int zähler =x;
     private int nenner = y;
     
     public Fraction(int zähler, int nenner){
       
        this.zähler = zähler;
        this.nenner = nenner;
        }
     
public Fraction addieren( Fraction bruch  ) {
        int zähler1=z;
        int nenner1=v;
        int ergebnis = (zähler*nenner2)/(nenner*nenner2)+ (zähler1*nenner)/(nenner1*nenner);
        return ergebnis;
   }
               
    public double multiplizieren(double zähler,double nenner) {
       
         double anderezahl1 =2;
         double ergebnis1 = zähler/nenner*anderezahl1;
       return ergebnis1;
    }
         
     public  double umrechnenFließkommaZahl(){
       double ergebnis1=zähler/nenner;
       return ergebnis1;
    }
   
    public  double kehrwertbilden() {
       double ergebnis3=nenner/zähler;
   
       
   return ergebnis3;
    }
   
}
   
    /**double umrechnen() {
       return ;
   }
   
   }
   
   
*/
Java:
import java.util.Scanner;

public class A {
    public static void main(String[] args) {  
       
       
           Fraction f=new Fraction(0, 0);
           Scanner eingabe= new Scanner (System.in);
            int x =eingabe.nextInt();
             int y = eingabe.nextInt();
           
           
            f.addieren(0, 0);
            f.multiplizieren(0, 0);
            f.umrechnenFließkommaZahl();
            f.kehrwertbilden();
           // f.umrechnen();
           
           
           
       }
}
 

JStein52

Top Contributor
private int zähler =x;
private int nenner = y;
Da gehts schon los. Setze einfach auf Initialwert 0; die Dinger kriegen ja ihre Werte dann im Konstruktor.
public Fraction addieren( Fraction bruch ) {
int zähler1=z;
int nenner1=v;
int ergebnis = (zähler*nenner2)/(nenner*nenner2)+ (zähler1*nenner)/(nenner1*nenner);
return ergebnis;
}
Und was ist hier z und v ? und nenner2 und warum ist das Ergebnis eine Integerzahl ? Du willst doch einen neuen Bruch (den Summenbruch) zurückgeben.
 

OPMajor

Aktives Mitglied
So?
Java:
public Fraction addieren( Fraction bruch  ) {
        Fraction zähler1=0;
        int nenner1=0;
        Fraction ergebnis = (zähler*nenner1)/(nenner*nenner1)+ (zähler1*nenner)/(nenner1*nenner);
        return ergebnis;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Kindklassen sollen Ihre Methoden selbst implementieren Java Basics - Anfänger-Themen 5
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
S Interface Implementieren von Methoden aus einer Klasse in eine GUI Java Basics - Anfänger-Themen 6
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
M Methoden implementieren? Java Basics - Anfänger-Themen 8
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Kotelettklopfer Methoden nicht aufrufbar Java Basics - Anfänger-Themen 34
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
Zeppi OOP Methoden mit einander Verknüpfen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
Junger_Basileus Celsius -> Fahrenheit / Strukturierung in statischen Methoden Java Basics - Anfänger-Themen 7
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Generics Methoden Java Basics - Anfänger-Themen 7
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
S throws bei Methoden Java Basics - Anfänger-Themen 4
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
I Greedy Methode Methoden nutzen Java Basics - Anfänger-Themen 3
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
T Methoden Verständnis Java Basics - Anfänger-Themen 14
M Feste Reihenfolge von dem Ablauf von Methoden Java Basics - Anfänger-Themen 7
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
N Klassen Warum kann meine Klasse nicht auf Methoden der anderen Klasse zugreifen? Java Basics - Anfänger-Themen 6
Ich lerne Java. Methoden Mehrere Methoden mit Punkt Java Basics - Anfänger-Themen 45
Kirby.exe Methoden Aufrufe Java Basics - Anfänger-Themen 4
G Objekte in Methoden? Java Basics - Anfänger-Themen 13
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Unterklasse soll nicht alle Methoden erben Java Basics - Anfänger-Themen 3
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
H Wie kann ich durch Methoden definiren? Java Basics - Anfänger-Themen 8
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
P Verzweigungen und Methoden Java Basics - Anfänger-Themen 10
C Methoden/Klassen Übergabewerte Java Basics - Anfänger-Themen 8
B Methoden Mehrere ähnliche Methoden zusammenfassen Java Basics - Anfänger-Themen 24
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
B Polymorphie Warum funktionieren polymorphe Referenzvariablen bei überschriebenen Methoden und bei nicht überschriebenen nicht? Java Basics - Anfänger-Themen 3
B Methoden Java Basics - Anfänger-Themen 1
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
P Methoden richtig anwenden Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben