2013-05-29 5 views
6

私はJavaプログラミングにはとても新しいので、2つのクラスとインタフェースで構成されるJavaプログラムを作ろうとしていました。主なクラスはStartingPoint.javaで、もう1つのクラスはCalculate.javaで、インタフェースはEquations.javaです。私はJavaと3つのクラスを持つ電卓を作ろうとしています

これまでのところ、単純な加算関数で構成されるEquation.javaインターフェイスには1つの式があります。私は2つの整数を挿入し、追加された解決策を返すようにプログラムに指示します。どんな助けでも大歓迎です。

このStartingPoint.java

import java.util.Scanner; 


public class StartingPoint { 
public static void main (String Hoda[]){ 

    System.out.println("Please enter two values"); 

    Scanner a = new Scanner(System.in); 
    Scanner b = new Scanner(System.in); 

    Calculate calculator = new Calculate(); 

    int answer = calculator.add(in.nextInt(a), nextInt(Scanner b)); 
    System.out.print(answer); 
} 
} 

と呼ばれる私のメインクラスは、ここに私の第二のクラスです。Calculate.java

import java.util.Scanner; 


public class Calculate implements Equations { 



@Override 
public int add(Scanner a, Scanner b) { 
    // TODO Auto-generated method stub 
    return (a + b); 
} 

} 

そして、ここでは私のインターフェイスはEquations.java

import java.util.Scanner; 



public interface Equations { 
int add(Scanner a, Scanner b); 
} 
と呼ばれています
+3

あなたの質問は何ですか? –

+0

return(a + b)行でCalculate.javaクラスにエラーが発生しました。私はそれ以上の進歩をさせないような気がします – Mustafa

+4

あなたのインターフェイスは2つのスキャナを受け入れるべきではありません。 2つの 'int'を受け入れるべきです。計算機がその入力をどのように取得するかは、計算エンジン自体にとって重要ではありません。むしろ、 'StartingPoint'クラスはユーザから2つの' int'を収集し、それらを計算機に渡すべきです。 – dlev

答えて

2

値を整数に変換したい場合は、次のようにします。

@Override 
public int add(Scanner a, Scanner b) { 
    int n1=Integer.parseInt(a.next()); 
    int n2=Integer.parseInt(b.next()); 
    return (n1 + n2); 
} 

私はあなたがJavaの初心者です。あなたの関数を見てみましょう:

public int add(... 

javaはこの関数が整数を返すことを期待しています。 + bを返していますが、aとbはIntegerではなく、オブジェクトScannerのインスタンスです。 したがって、入力文字列を整数オブジェクトに「変換」する必要があります。 Javaは非常に高水準な言語なので、ほとんどすべてのオブジェクトには、私たちが望むことを何でもするのに役立つたくさんのメソッドがあります。この場合、IntegerクラスにはparseInt(String args)という静的メソッドがあり、指定された文字列を解析して数値かどうかを調べます。数値の場合、整数を返します。そうでない場合は、例外がスローされます。 そのため、入力を検証する必要があります。数字以外の値を入力するとクラッシュします。

+0

うわー! soooooooありがとうございました。私は1時間かけてインターネット上のソリューションを調べようとしています。あなたのような人々は私に希望を与える!ほんとうにありがとう!あなたが気にしないなら、あなたが変えたものと、それが私のコードにどのように役立つのかを私に伝えることができますか? – Mustafa

+0

あなたは歓迎です:) 私は今私の答えを編集します。 –

+0

大丈夫です...私は、parseInt関数が入力を整数に変換することを理解していますが、a.next()とb.next()は何をしますか? – Mustafa

関連する問題