2011-10-29 1 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 myResult = Myclass.MyMethod(); 

編集:ですが、これを使用する方法を知っているように見えるあなたの計算方法以外に何を行うだろうと、intはメソッドから返さ受け入れることであろう。今私はあなたの問題が何であるか分かりません。メインメソッドでOKメソッドを使用しているからです(ただし、クラス名からメソッドを呼び出すのではなく、メインメソッドがクラス名の内側にある場合は必要ありません)。クラスそのもの)。例として

+0

calculate()はパラメータを取る; – berry120

+1

@ berry120:うん、私はそれを気付き、私の答えを編集しました。あなたの素敵な答えに1 + –

+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

あなたよりも大きな問題があります。 ロバートC.マーティンの「コードをクリーンアップする」を読んでください。あなたのコードはオブジェクト指向ではありません

関連する問題