2012-12-27 38 views
-3

我想另一個類如何調用我的整數的方法在一個單獨的類

public class Variables 
{ 
    public void vary() 
    { 
     int DSpr 
    } 
} 

public class BattleCalc 
{ 
    public static void main(String[] args) 
    { 
     Variables v = new Variables(); 
     v.vary(); 
     Scanner spr = new Scanner(System.in); 
     DSpr = Integer.parseInt(spr.nextLine()); //This line here 
    } 
} 

這是到目前爲止我的代碼中調用一些整數到一個類的方法,但DSPR = Integer.parseInt ... eclipse給我一個錯誤「DSpr無法解析」。爲什麼不從變量中調用DSpr?

+4

你試過編譯和運行這個嗎?你試圖從不同的類中調用一個方法的局部變量,這是不可能的 – rajesh

+0

不可能與代碼 –

+0

而你有兩個公共類在同一個文件? – irrelephant

回答

0

「從另一個類中的方法調用一些整數到一個類」是沒有意義的對我來說。在方法變量是局部的方法只

我想你想要做的是這樣的事情

public class Variables 
{ 
... 
    public int DSpr; 
} 
... 
v.DSpr = Integer.parseInt(spr.nextLine()); 

即讓DSPR公共成員變量類的變量

它是建議使用,而不是使其成爲private變量,併爲類之外的用戶編寫setter-getter方法以使用它。

+0

如何將DSpr設置爲private並使用setter方法進行設置? –

+0

@VallabhPatade是這將是推薦的方式。這是對OP的要求的基本回答 –

0

試試這個:爲了訪問另一個類的變量,它必須聲明爲類變量。

在你的類變量:

 public class Variables{ 
      int DSpr; 

      public void vary(){ 
       //do assignment here or operation, if you want to create a method 
       DSpr = 0; 
      } 
     } 

然後調用它在你的主類。

0

int DSprvary()方法內本地聲明,因此無法在該方法之外訪問。即使在封裝類Variables

要訪問另一個類中的變量,它應該定義爲實例字段。 (或類變量/靜態變量)現在

public class Variables 
{ 
    public int DSpr; 
    // OR 
    // public static int DSpr; 
    public void vary() 
    { 

    } 
} 

,在BattleCalc類,你可以按以下方式聯繫:

Variables v = new Variables(); 
v.DSpr = Integer.parseInt(spr.nextLine()); 
// OR 
// Variables.DSpr = Integer.parseInt(spr.nextLine()); 
0

這裏您DSpr變量範圍僅限於這個方法:

public void vary() 
{ 
    int DSpr 
} 

所以它不能被其他任何地方訪問。

如果你正在使用其他地方,你需要重新申報,如:

int DSpr = Integer.parseInt(spr.nextLine()); 
0

要從完全是另一個類值分配給DSPR。您應該在變量類中聲明DSpr成員變量,並通過在該類中調用setter來分配它。

你的代碼會是這樣的。

public class Variables 
{ 
private int DSpr; 
public void setDSPR(int DSpr) 
{ 
    this.DSpr=DSpr; 
} 

}

public class BattleCalc 
{ 
public static void main(String[] args) 
{ 
    Variables v = new Variables(); 
    Scanner spr = new Scanner(System.in); 
    try { 
     v.setDSPT(Integer.parseInt(spr.nextLine())); //This line here 
    } catch(NumberFormatException ex) { 
     System.out.print("Invalid Input.!") 
    } 
} 
} 
0

試試這個..

import java.io.*; 
import java.util.*; 

class Variables 
{ 
    public void vary() 
    { 
     int DSpr; 
    } 
} 

public class BattleCalc 
{ 
    public static void main(String[] args) 
    { 
     Variables v = new Variables(); 
     v.vary(); 
     Scanner spr = new Scanner(System.in); 
     int DSpr = Integer.parseInt(spr.nextLine()); //This line here 
    } 
} 
0

是你應該得到上面代碼中的錯誤,這是我的解決方案 我假設你想改變改變變量值()。但是我不確定這個用法,因爲你沒有使用BattleCalc中的改變的值。 因此,獲取並設置整數變量,你可以使用getters和sertters,但是在這裏我會對你的代碼做最小的修改以使其易於理解(所以我沒有在這裏使用getters和setter,儘管這是理想的方式)

public class Variables { 
    public int DSpr; 

    public void vary() { 
     // Change the value of DSpr 
     DSpr = 10; 
    } 
} 

public class BattleCalc { 

    public static void main(String[] args) { 
      Variables v = new Variables(); 
      v.vary(); 
      Scanner spr = new Scanner(System.in); 
      v.DSpr = Integer.parseInt(spr.nextLine()); //This line here 
    } 
} 
+0

只是爲了比較,這是比其他三個更好的答案。請做更多這樣的答案,在那裏你解釋和發佈代碼,而不是鏈接。 –

相關問題