2017-11-24 3 views
-1

私はjavaで電卓プログラムを作っています。私は4つのクラスを持つパッケージ計算機を作成しました。パッケージは等式を取り、その結果を見つけます(このプログラムは動作します)。私は(それは各クラスの最初の行だったことを確認しました)各クラスの最上部に私が作成したパッケージのクラスのメソッドを使う方法

package calculator; 

を書いたので、今、私はグラフィック電卓のために、このロジックを使用します。私はその後、クラスはまた、電卓(JCalcが計算を実行するためのすべてのロジックを持つクラスである)と呼ばれるグラフィック電卓で私のクラスに

import calculator.JCalc; 

を書きました。私のクラスのCalculator idは、ユーザーが "="ボタンを押したときにfindResultメソッドを実行するのが好きですが、Calculatorのクラス内でこのメソッドにアクセスする方法がわかりません。

あなたはから呼び出すことができます電卓オブジェクトを作成する必要があり
private String find_result(String equation) { 

    ... 

} 

答えて

0

...

電卓CALC =新しい電卓(); 。 CALC(いくつかのメソッド)

+0

答えてくれてありがとう、ちょうどそれを試してみましたが、うまくいきませんでした。私は小文字の「c」で電卓を書いて​​みました。小文字でパッケージの名前を書いて、あなたが参照しようとしていたものを考えましたが、 –

+0

エラーは何を言いますか? :) –

+0

私は電卓(あなたがそれを書いた方法のような大文字C)を書くとき私は自分のメソッドfind_resultにエラーを出し、find_result(String)メソッドはCalculator型のために定義されていないと言います。私は計算機を書く=新しいcalculator.JCalc();私はその声明に誤りを出し、電卓はタイプに解決できないと言います。 Btwあなたはどういう意味ですか –

1

@Marcあなたは電卓クラス内で呼び出したいメソッドを提供する動作するはず提供何をpublicとして宣言されています。このよう

Calculator calc = new Calculator(); 
System.out.println(calc.find_result("3+3")); 
0

私の友人:)

package calculator; 
import calculator.JCalc; 
import java.util.Scanner; 

public class SOMECLASSNAME() 
{ 
    Calculator calc = new Calculator(); 
    Scanner scanner = new Scanner(System.in); 

    public static void main(String[] args) 
    { 
     String myEquation = SOME EQUALTION 
     printResult(myEquation); 
    } 

    public void printResult(String myEquation) 
    { 
     if (scanner.equals("=")) 
     System.out.println(calc.find_result(myEquation)) 
     else printResult(); // recalls the method until "=" is typed. 
    } 
} 
+0

本当に助けていただければ幸いですが、それでもコードは非常に長くて送信できませんが、それ以外の奇妙な理由があると思います –

+0

が動作していない可能性がありますし、SOMECLASSNAME()が私の場合はCalculatorになります –

+0

あなたの問題を理解しました。あなたが到達したいクラスのオブジェクトを作成する必要があります。以前のように、代わりに 'Calculator calc = new Calculator();'それがあなたのメインクラスなのですから? 'JCalc calc = new JCalc();'と書くこの後、あなたのクラスのトラフからcalcオブジェクトを呼び出すことができるはずです:) –

関連する問題