Variablen Variable aus anderen Klassen

Spiritinio

Mitglied
Guten Tag zusammen. Ich bräuchte eure Hilfe. Ich habe ein Programm geschrieben, das dem User sein BMI rechnen soll. Ich weiss aber nicht, wie man von anderen Klassen, Variablen implementieren kann. Ich schicke euch mal den Code (ich habe es Kommentiert, damit man es besser versteht). Ich danke euch im Voraus für eure Hilfe. Ich habe in Google rumgesucht und einen Lösungsvorschlag gefunden, jedoch funktioniert es nicht.

P.S. Ich weiss, dass es einfacher wäre alles in einer Klasse + die Main Klasse zu machen aber ich will lernen, wie man Variblen aus anderen Klassen holen kann.

Starter
Java:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package bmi_rechner;

/**
 *
 * @author Atakan
 */
public class Starter {
    public double GewichtRechnen;
    public double GroesseRechnen;
    public static void main(String[] args) {
      new GUI().KoerpergroesseAbfrage();
      new GUI().GewichtAbfrage();
      new BMI_Rechner().BMIRechner();
    }
    
}

BMI_Rechner
Java:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package bmi_rechner;

/**
 *
 * @author Atakan
 */
public class BMI_Rechner {
    private double GroesseRechnen;
    private double GewichtRechnen;

   public void BMIRechner () {
       double BMI = GewichtRechnen / (GroesseRechnen * GroesseRechnen);
       System.out.println("Ihre BMI ist: " + BMI);
   }
   
   /* In dieser Methode wird die geschickte Grösse empfangen. */
   public void GroesseHolen (double Groesse1){
       GroesseRechnen = Groesse1;
       
   }
   
   /* In dieser Methode wird das geschickte Gewicht empfangen. */
   public void GewichtHolen (double Gewicht1){
       GewichtRechnen = Gewicht1;
   }
    
}

GUI
Java:
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package bmi_rechner;
import javax.swing.JOptionPane;

/**
 *
 * @author Atakan
 */
public class GUI {
    public double Gewicht;
    public double Koerpergroesse;
    
    
    /* In dieser Methode wird die Körpergrösse abgefragt. */
  public void KoerpergroesseAbfrage (){
    String InputKoerpergroesse = JOptionPane.showInputDialog(null,
    "Bitte geben Sie Ihre Körpergrösse in Meter an!",
    "Körpergrösse Abfrage",
    JOptionPane.QUESTION_MESSAGE);
    
    /* Hier wurde die eingegebene Körpergrösse in double umgewandelt. */
    Koerpergroesse = Integer.parseInt(InputKoerpergroesse);
    
    /* In dieser "if" Frage, wird ein möglicher Fehler eliminiert. */
    if (Koerpergroesse > 2){
    JOptionPane.showMessageDialog(null,"Sie haben Ihre Grösse nicht in Meter angegeben. Bitte geben Sie es in Meter an! Beispiel: Ich bin 186cm gross also gebe ich 1.86 ein.","Achtung!", JOptionPane.CANCEL_OPTION);
    new GUI().KoerpergroesseAbfrage();
    }

  /* Hier habe ich die Variable Koerpergroesse an die Klasse BMI_Rechner geschickt.*/
  BMI_Rechner sendGroesse = new BMI_Rechner();
  sendGroesse.GroesseHolen(Koerpergroesse);
  }

  /* In dieser Methode wird das Körpergewicht abgefragt. */
  public void GewichtAbfrage () {
  String InputGewicht = JOptionPane.showInputDialog(null,
  "Bitte geben Sie Ihr Gewicht in kg an!",
  "Körpergewicht Abfrage",
  JOptionPane.QUESTION_MESSAGE); 
  
  /*Hier wurde das Gewicht in double umgewandelt. */
  Gewicht = Integer.parseInt(InputGewicht);
  
 /* In dieser "if" Frage, wird ein möglicher Fehler eliminiert. */
  if (Gewicht > 600){
      JOptionPane.showMessageDialog(null,"Anscheinend haben Sie Ihr Gewicht nicht in kg angegeben, weil es sonst heissen würde, dass Sie mehr wiegen als der schwerste Mann der Welt... Bitte geben Sie es in kg an!","Achtung!", JOptionPane.CANCEL_OPTION);
      new GUI().GewichtAbfrage();
      
  }
  
  /* Hier habe ich die Variable Gewicht an die Klasse BMI_Rechner geschickt.*/
  BMI_Rechner sendGewicht = new BMI_Rechner();
  sendGewicht.GewichtHolen(Gewicht);
}
  
  public double getGewicht(){
      return this.Gewicht;
  }
  
  public double getGroesse(){
      return this.Koerpergroesse;
  }
}
 

stg

Top Contributor
Über öffentliche Zugriffsmethoden, so wie du es in der Klasse GUI in Zeile 62-68 schon gemacht hast :rtfm:
 

Neue Themen


Oben