2015-05-20 12 views
6

Ich bin brandneu zu Java, begann vor zwei Wochen und habe Probleme, meinen Geist um dieses Problem zu wickeln. Ich habe ein Problem in einer Klasse, die ich nehme, die zuvor angesprochen wurde. Umrechnung von Kilogramm in Pfund und Rundung auf die zweite Dezimalstelle.Eingabe/Ausgabe - Arithmetische Gleichung

Ich kann die Eingabeseite der Dinge erstellen und ein Dialogfeld aufrufen, um den Benutzer zur Eingabe einer Gewichtung aufzufordern. Ich kann auch eine Ausgabe erstellen, die eine von mir erstellte Gleichung verwendet, um die Antwort in einem Dialogfeld auszugeben.

Meine Frage ist, wie nehme ich die Informationen, die eingegeben werden und verwenden Sie es von Kilogramm in Pfund zu konvertieren?

Ich habe mein Buch gelesen und das Internet durchforstet, um eine Antwort zu finden, und ich denke, dass ich vielleicht darüber nachdenken werde. Danke für die Hilfe.

Input.java:

//This program asks a user to input a weight in kilograms. 

package module2; 

import javax.swing.*; 

public class Input { 

    public static void main(String[] args) { 

     String weight; 

     weight = JOptionPane.showInputDialog("Enter weight in kilograms"); 
    } 
} 

Output.java:

//This program outputs a converted weight from kilograms to pounds. 

package module2; 

import javax.swing.JOptionPane; 

public class Output { 

    public static void main(String[] args) { 

     double kg = 75.5; 
     double lb = 2.2; 
     double sum; 

     sum = (kg * lb); 

     JOptionPane.showMessageDialog(null,sum, "Weight Conversion", JOptionPane.INFORMATION_MESSAGE); 
    } 
} 
+0

Gut für Starter können Sie nicht 2 Hauptmethoden haben. – RichN

+0

@RichN Sie können, aber nur eine würde pro Instanz ausgeführt werden. Du könntest immer den anderen aufrufen, aber das ist eine schlechte Sache zu tun. – Obicere

+1

@Obicere Ah ja natürlich. Ich nahm die "normale" Art der Verwendung von "Haupt" -Methoden an. Und außerdem, wenn Sie genug Kenntnisse haben, um das zu tun, hätten Sie sie wahrscheinlich nicht als "Haupt" -Methoden geschrieben. – RichN

Antwort

6

Gerade jetzt haben Sie zwei Hauptmethoden. Beides sind Einstiegspunkte für das Programm. Da sie Informationen teilen müssen, macht es keinen Sinn, dass Sie beides haben.

Was ich empfehlen würde, ist die Output ‚s Haupt-Methode auf eine Instanzmethode zu ändern, wobei ein Parameter: die weight vom Input.

Wie so:

public void printOutput(final double weight){ 
    //... 
} 

Anschließend können Sie das Anruf von der Input ‚s main-Methode wie folgt:

public static void main(String[] args) { 

    String weight; 

    weight = JOptionPane.showInputDialog("Enter weight in kilograms"); 

    double kg = Double.parseDouble(weight); // Be sure to parse the weight to a number 
    Output output = new Output(); // Create a new instance of the Output class 

    output.printOutput(kg); // Call our method to display the output of the conversion 
} 

Eine andere Sache ist, dass seit Output derzeit nur Wenn Sie diese Methode für diese eine Methode verwenden, können Sie nur diese Methode in Input verschieben.

+0

Vielen Dank für die Hilfe. Dieses Java-Kram ist eine Menge, die man einnimmt und aussortiert. Was bedeutet es, wenn Sie Double.parseDouble (Gewicht) speziell das parseDouble sagen? Nochmals vielen Dank für Ihre Hilfe. – Ph1shPhryd

+0

@ Ph1shPhryd 'Gewicht' ist ein' String'. Nur eine Liste von Charakteren. Sie können nicht wirklich hinzufügen, multiplizieren oder dividieren, als wäre es eine Zahl. Stattdessen können Sie die Java-Bibliothek aufrufen, um diese Zeichenfolge zu übernehmen und zu parsen. Dies gibt dann ein "double" zurück, das eine Zahl ist. So können Sie es dann als solches verwenden. – Obicere

+0

das macht Sinn. Wenn ich jetzt das Programm starte, bleibt die Antwort immer gleich, egal was ich eingib. Ich versuche das Problem herauszufinden, aber es scheint, als wäre ich festgefahren. Irgendwelche Ideen, warum das passiert? – Ph1shPhryd

0
// addition of two integers using JOptionPane 
import javax.swing.JOptionPane; 

public class Addition 

{ 

    public static void main(String[] args) 

    { 

    String firstNumber = JOptionPane.showInputDialog("Input <First Integer>"); 
    String secondNumber = JOptionPane.showInputDialog("Input <Second Integer>"); 
    int num1 = Integer.parseInt(firstNumber); 
    int num2 = Integer.parseInt(secondNumber); 
    int sum = num1 + num2; 
    JOptionPane.showMessageDialog(null, "Sum is" + sum, "Sumof two Integers", JOptionPane.PLAIN_MESSAGE); 
    } 
} 
+0

Schreiben Sie nicht nur den Ebenencode. Fügen Sie weitere Informationen zu Ihrer Antwort hinzu – RomCoo