2015-05-20 26 views
6

İki hafta önce başlattığım Java için yeni bir markayım ve bu konuyla ilgili fikrimi sarmalayan sorunlar yaşıyorum. Daha önce gündeme getirilen bir derste problemim var. Kiloları kilograma dönüştürmek ve ikinci ondalık basamağa yuvarlamak.Girdi/Çıktı - Aritmetik Eşitlik

Nesnelerin giriş tarafını oluşturabilir ve kullanıcının bir ağırlık girmesini isteyen bir iletişim kutusu açabilirim. Ayrıca, bir iletişim kutusunda cevabı çıktılamak için yaptığım bir denklem kullanan bir çıktı oluşturabilirim.

Sorum şu: Giriş bilgisini nasıl alıp kilogramdan pound'a dönüştürmek için kullanabilirim?

Kitabımı okuyorum ve internette bir cevap bulmaya çalışıyorum ve düşündüğümü düşünüyorum. Yardım için teşekkürler.

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

Başlangıç ​​için, 2 ana yönteme sahip olamazsınız. – RichN

+0

@RichN yapabilirsiniz, ancak örnek başına yalnızca biri çalıştırılacaktı. Her zaman diğerini çağırırsın, ama yapılması gereken kötü bir şey. – Obicere

+1

@Obicere Ah Evet tabiki. "Ana" yöntemlerini kullanmanın "normal" yolunu varsayıyordum. Ayrıca bunun için yeterince bilgili olursanız, muhtemelen onları 'ana' yöntemler olarak yazmazsınız. – RichN

cevap

6

Şu anda 2 ana yöntem var. Her ikisi de program için giriş noktalarıdır. Bilgi paylaşmaları gerektiğinden, ikinizin de sahip olduğu anlamsızdır.

Tavsiye edeceğim şey, Output'un ana yöntemini bir yöntemle, bir parametre alarak değiştirmektir: , Input.

böylece gibi:

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

Sonra şöyle Input 'in ana yönteminden diyemez:

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 
} 

bir diğer şey, Output beri şu anda sadece olmasıdır Bu yöntem için kullanıldığında, bu yöntemin yalnızca Input'a taşınmasını düşünebilirsiniz.

+0

Yardımlarınız için çok teşekkür ederim. Bu Java şeyler çok almak ve sıralamak. Double.parseDouble (ağırlık) özellikle parseDouble derken ne anlama geliyor? Bir kez daha, yardımlarınız için teşekkür ederim. – Ph1shPhryd

+0

@ Ph1shPhryd 'weight' bir' String''dir. Sadece bir karakter listesi. Bir sayı gibi gerçekten ekleyemez ya da çarpamaz ya da bölemezsiniz. Bunun yerine, bu dizeyi almak ve ayrıştırmak için Java kütüphanesini çağırabilirsiniz. Bu, bir sayı olan bir 'çifte' döndürür. Böylece böyle kullanabilirsiniz. – Obicere

+0

anlamlıdır. Bu yüzden şimdi programı çalıştırdığımda cevap, ne girdiğim olursa olsun hep aynı kalır. Ben sorunu anlamaya çalışıyorum ama sıkışmış gibi görünüyor. Bunun neden olduğuna dair bir fikrin var mı? – 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

Sadece uçak kodu yazmayın. Cevabınıza daha fazla bilgi ekleyin – RomCoo