2015-10-29 45 views
-1

我正在試圖獲取類內部的方法的值到主類中。Java - 獲取類內部方法的值

代碼應該讓我通過使用控制檯給變量'a','s'和'u'賦值,然後將值返回給主類。

import java.util.*; 
public class Auslesen 
{ 

    String a; 
    private int s; 
    double u; 

    public class Scannen 
    { 
     Scanner scanner = new Scanner(System.in); 

     public int Methode() 
     { 
      s = scanner.nextInt(); 
      return s; 
     } 
    } 
} 

,這裏是我的主類:

public class Start 
{ 
    public static void main(String[] args) 
    { 


     Auslesen auslesen = new Auslesen(); 
     //System.out.println(auslesen); 

     Auslesen.Scannen scannen = auslesen.new Scannen(); 
     //System.out.println(scannen); 

     Auslesen.Scannen.Methode methode = scannen.new Methode(); 
     System.out.println(methode); 
     //my approach which didnt worked out... 


    } 
} 
+1

爲什麼你認爲你可以調用類似'new [Methodname]'的方法?你知道'new'的意思嗎? – Tom

+0

只需調用方法並存儲結果。如: s = Methode(); 請注意,您將要一個不同的問題很快我想...請注意變量是什麼類型,並注意你有隻有一個方法簽名定義...想一想(public int Methode)...從這個意義上講,也注意到Java不支持返回類型重載。 –

+0

另外,這個內部階層的原因是什麼?如果你真的需要在一個類中包裝它,那麼創建一個包含靜態幫助器'Methode'的靜態類Auslesen。 –

回答

4

Methode是一種方法不是類。你不用new創建它,或者爲此創建它。方法在類中定義,您只需調用它。例如。

System.out.println(scannen.Methode()); 

,並刪除這一行:

Auslesen.Scannen.Methode methode = scannen.new Methode(); 

也儘量堅持到Java命名約定:類名稱以大寫的方法,用小寫的變量名。

1

首先,你爲什麼要在另一個類中聲明一個類?現在

String a; 
private int s; 
double u; 
Scanner scanner = new Scanner(System.in); 

    public int Methode() 
    { 
     s = scanner.nextInt(); 
     return s; 
    } 

在main方法只是調用該方法 - - 如果你只是想從一個類返回一個值到另一個類,那麼你可以做這樣的事情

Auslesen a=new Auslesen(); 
System.out.println("The entered number is: "+a.Methode());  
+0

有了明顯的評論,Methode在這種情況下,不會設置變量,只是返回到outstream ...取決於它是否是OPs分配中的要求來做到這一點。 我的理解是值給定在OP的主類中:「將值返回給主類」。 < - 注意複數這裏的'值'... –