2015-05-20 13 views
6

Sono nuovo di zecca per Java, avviato due settimane fa e sto avendo problemi che mi avvolgono la mente su questo problema. Ho un problema in una classe che sto prendendo in esame. Conversione di chilogrammi in sterline e arrotondamento alla seconda cifra decimale.Input/Output - Aritmetica Equazione

Posso creare il lato di input delle cose e far apparire una finestra di dialogo per richiedere all'utente di inserire un peso. Posso anche creare un output che usa un'equazione che ho fatto per emettere la risposta in una finestra di dialogo.

La mia domanda è: come posso prendere le informazioni che vengono inserite e usarle per convertire da chilogrammi in libbre?

Ho letto il mio libro e perlustrando internet cercando di trovare una risposta e penso che potrei non pensarci più. Grazie per l'aiuto.

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

Bene per l'avviamento non è possibile avere 2 metodi principali. – RichN

+0

@RichN puoi, ma solo uno verrebbe eseguito per istanza. Potresti sempre invocare l'altro, ma questa è una brutta cosa da fare. – Obicere

+1

@Obicere Ah sì, certo. Stavo assumendo il modo "normale" di usare i metodi 'main'. Inoltre, se sei abbastanza esperto da farlo, probabilmente non li avresti scritti come metodi "principali". – RichN

risposta

6

In questo momento ci sono 2 metodi principali. Entrambi sono punti di ingresso per il programma. Dal momento che devono condividere informazioni, non ha senso che tu abbia entrambi.

Quello che consiglio è di cambiare il metodo principale di Output in un metodo di istanza, prendendo un parametro: lo Inputweight.

Come così:

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

È quindi possibile chiamare che dal metodo main 's il Input in questo modo:

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 
} 

Un altra cosa, è che, poiché Output è attualmente solo utilizzato per questo metodo, si potrebbe prendere in considerazione solo lo spostamento di quel metodo in Input.

+0

Grazie mille per l'aiuto. Questa roba Java è molto interessante e risolta. Che cosa significa quando dici Double.parseDouble (weight) specificamente il parseDouble? Ancora una volta, grazie per il tuo aiuto. – Ph1shPhryd

+0

@ Ph1shPhryd 'weight' è un' String'. Solo una lista di personaggi. Non puoi davvero aggiungere o moltiplicare o dividere con quello come se fosse un numero. Invece, puoi chiamare la libreria Java per prendere quella stringa e analizzarla. Questo quindi restituisce un 'double', che è un numero. Quindi puoi quindi usarlo come tale. – Obicere

+0

questo ha un senso. Quindi quando eseguo il programma ora la risposta rimane sempre la stessa, indipendentemente da quello che ho inserito. Sto cercando di capire il problema ma sembra essere bloccato. Qualche idea sul perché sta succedendo? – 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

Non scrivere solo codice aereo. Aggiungi ulteriori informazioni alla tua risposta – RomCoo