2011-10-29 66 views
1
import java.io.IOException; 
import java.util.*; 

public class calling { 


public static int num1() { 
int x; 
Scanner scanner = new Scanner (System.in); 
System.out.println("Please enter a number called x: "); 
x=scanner.nextInt(); 
return x;  
} 

public static int num2() { 
int y; 
Scanner scanner = new Scanner (System.in); 
System.out.println("Please enter a second number called y: "); 
y=scanner.nextInt(); 
return y;  
} 

public static String operand() { 
Scanner input = new Scanner (System.in); 
String s; 
System.out.println("What process would you like to do? *, /, + or - ?"); 
s=input.next(); 
return s; 
} 

public static void calculation(int x, int y, String s) { 
String t; 
Scanner input = new Scanner(System.in); 


if (s.equals("*")) { 
System.out.println("\nThe product of these numbers is:" + (x*y));} 
else 
if (s.equals("+")) { 
System.out.println("\nThe sum of these numbers is: " + (x+y));} 

System.out.println("\nDo you want x or y to be the dividor/subtractor?: "); 
t=input.next(); 

if (t.equals("y") || t.equals("Y")) { 

if (s.equals("/")) { 
System.out.println("\nThe quotient of these numbers is: " + (x/y));} 
else 
if (s.equals("-")) { 
System.out.println("\nThe difference of these numbers is: " + (x-y));}} 

else 
if (t.equals("x") || t.equals("X")){ 

if (s.equals("/")) { 
System.out.println("\nThe quotient of these numbers is: " + (y/x));} 
else 
if (s.equals("-")) { 
System.out.println("\nThe difference of these numbers is: " + ((y-x)));}} 
} 

public static void main (String [] args) throws IOException { 


int x1=num1(); 
int y1=num2(); 
String s1=operand(); 
calculation(x1, y1, s1); 




} 

} 

我該如何將這些方法調用到新類中,以便我可以從中運行程序?我明白你通常會把class.nameofmethod()的名字;但我將如何通過參數等? 我是一個Java初學者,所以所有的幫助將不勝感激! 在此先感謝你們。如何在另一個課程中調用以下方法? java

+0

你可以通過傳遞參數來傳遞參數,比如'StaticCalculatorClass.calculation(5,10,「wat」 )'。但是這種方法幾乎肯定是不正確的;你傳入一個字符串,然後立即用來自掃描器的輸入覆蓋它。你也希望這些方法是非靜態的,所以它們是實例方法 –

回答

1

由於所有的方法都是靜態的,你可以這樣做:

int x1=calling.num1(); 
int y1=calling.num2(); 
String s1=calling.operand(); 
calling.calculation(x1, y1, s1); 

但是,如果你沒有讓他們靜,你想打電話給他們,那麼你實例化一個類並調用該類方法。

calling app = new calling(); 
int x1=app.num1(); 
int y1=app.num2(); 
String s1=app.operand(); 
app.calculation(x1, y1, s1); 
+0

calling.calculation(x1,y1,s1);在括號內給我一個錯誤:S –

1

沒有參數可以通過,因爲所有的方法都是無參數的。你會做什麼會接受INT從方法返回:

int myResult = Myclass.MyMethod(); 

編輯:除了那就是你的計算方法,但你似乎知道如何使用這個。現在我不確定你的問題到底是什麼,因爲你正在使用main方法中的方法OK(除非你沒有把它們叫做類名,但不必如果main方法在類本身)。

+0

calculation()需要參數;) – berry120

+1

@ berry120:是的,我注意到並編輯了我的答案。順便提一下你的好回答。 –

+0

同樣,謝謝:-) – berry120

3

作爲一個例子:

int x = calling.num1(); 
System.out.println(x); 

...存儲在x中的num1()方法的結果然後打印出x的內容。

在參數方面:

calling.calculation(4,5,"+"); 

你要問這表明,你應該離開,念起來一些非常基本的Java教程跟進,如這裏的一個事實:http://download.oracle.com/javase/tutorial/getStarted/index.html - 這根本不是一種攻擊,只是一個如何最好地拓寬知識的建議。

0

您遇到的問題比此更大。你的代碼不是面向對象的

相關問題