2012-08-26 63 views
1

我想寫一個簡單的程序,它有兩個類。我想要一個類(用main方法)來處理所有的輸入和輸出,另一個類來處理所有的數學,然後將計算返回到主方法。我可以成功地將主要方法中的變量傳遞給數學類中的一個對象,並用println測試了該方法的結果,但似乎無法將完成的計算傳遞迴我的主要方法。這是我的代碼,請幫我理解。非常感謝您 這裏是類主要方法傳入變量的主要方法java

import java.util.Scanner; 


public class io { 
    public static void main (String[] args){ 
     Scanner chargeTankStartGaugeFeetInput = new Scanner(System.in); 
     Scanner chargeTankStartGaugeInchesInput = new Scanner(System.in); 
     System.out.println("What is the charge tank's start gauge feet: "); 

     String chargeTankStartGaugeFeet = chargeTankStartGaugeFeetInput.nextLine(); 
     System.out.println("What is the charge tank's start gauge inches: "); 

     String chargeTankStartGaugeInches = chargeTankStartGaugeInchesInput.nextLine(); 

     math mathObject = new math(); 
     mathObject.changeGaugesToInches(chargeTankStartGaugeFeet, 
             chargeTankStartGaugeInches); 
     System.out.println(mathObject.totalInches(totalInches) 
          + " is total inches in io");  
    } 
} 

我收到寫着「totalInches」中的主要方法不能被解析爲一個變量的錯誤。我的想法甚至接近於這應該如何工作?

這裏是數學課

public class math { 
    public void changeGaugesToInches(String arg1, String arg2) { 
     double arg1Double = Double.valueOf(arg1).doubleValue(); 
     double arg2Double = Double.valueOf(arg2).doubleValue(); 

     double totalInches = arg1Double * 12 + arg2Double; 

     System.out.println(totalInches + " is the total inches"); 
    } 
} 

回答

0

首先,按照慣例,在Java中所有類和枚舉名稱應以大寫字母開頭。其次,你可能想爲你的數學課使用一個更具描述性的名字,「UnitsConverter」,如果這就是它所做的一切。

changeGaugesToInches,您應該重命名arg1arg2feetinches

最重要的是,您需要更改該方法返回的結果,它在你的主要方法分配給一個變量:

double totalInches = mathObject.changeGaugesToInches(chargeTankStartGaugeFeet, chargeTankStartGaugeInches); 

public double changeGaugesToInches(String arg1, String arg2){ 
    //... 
    return totalInches; 
} 

由於這種方法不使用任何實例變量,除非你認爲你可能會在子類中使用此方法(例如,添加公制單位),如果您將其聲明爲靜態,代碼將更有效。另外,除非需要更高的精度,否則可以使用整數。

double totalInches = UnitsConverter.changeGaugesToInches(chargeTankStartGaugeFeet, chargeTankStartGaugeInches); 

public static int changeGaugesToInches(String feet, String inches){ 
    return changeGaugesToInches(Integer.parseInt(feet), Integer.parseInt(inches)); 
} 

// this method can be used more efficiently from parts of your app that already have the units as integers. 
public static int changeGaugesToInches(int feet, int in 
    //... 
    return totalInches; 
} 
+0

非常感謝您的幫助 – TeachMePlease

0

您可以從該方法返回的值...

public double changeGaugesToInches(...) 
{ 
    .... 
    return totalIncehs; 
} 
0

任何空隙的方法不能有返回值。因爲 public void changeGaugesToInches(String arg1,String arg2)是一個void方法,因此它沒有返回類型。

如果你使它成爲靜態,那麼你不能使用math mathObject = new math();