2016-02-01 20 views
0
class Method 
{ double w,h,d; 
    double volume(double w,double h,double d) 
    { 
     return (h*w*d); 
    } 
} 

class Methodtwo 

{ 

    public static void main(String args []) 

    { 
     Method a= new Method(); 
     a.volume(2,3,4); 
     double v; 
     v=a.volume; 
     System.out.println(v); 
    } 
} 
+0

此問題沒有顯示任何研究工作。你應該知道你已經創建了一個'Method'類的對象,叫做'a'。你正在調用它的函數''volume',參數爲'(2,3,4)'。這將返回一個值,但是,你不使用它。而是嘗試將變量v存儲在「Method」中的參數'volume'中。那麼'Method'甚至沒有一個叫'volume'的參數。 –

回答

1

嘗試寫這樣的事:

v = a.volume(2, 3, 4); 

因爲是一個實例volume應一個方法 。
並試試這個learn java

1

仔細檢查你的Methodtwo類。您調用v=a.volume;,這是錯誤的,因爲volume()方法需要三個參數。檢查更正的代碼。

class Method 
{ double w,h,d; 
    double volume(double w,double h,double d) 
    { 
     return (h*w*d); 
    } 
} 

class Methodtwo 

{ 

    public static void main(String args []) 

    { 
     Method a= new Method(); 
     double v = a.volume(2,3,4); 
     System.out.println(v); 
    } 
} 
1

您遇到的問題是您在調用a.volume時沒有保存方法「volume」的結果。發生了以下情況:

  • 您調用a.volume(2,3,4)。該方法返回24,但該值不存儲在任何地方。
  • 然後定義double v,並嘗試將其設置爲一個名爲 a.volume的變量。這是因爲您在v = ...賦值語句的末尾沒有括號「()」。

有幾種方法可以解決這個問題。一種方法是:

double v = a.volume(2,3,4) 

另一種方法是在名爲method的類中調用a.volume時保存值。

class Method 
{ 
    double volumeValue 
    double volume(double w,double h,double d) 
    { 
    volumeValue = h * w * d; 
    } 
} 

然後將v = a.volume更改爲v = a.volumeValue。這樣,當您調用a.volume(2,3,4)時,Java會設置volumeValue,然後v = a.volumeValue會要求Java返回您上次存儲的值。