2017-01-07 13 views
-1

私はどのようにして完了するのかわからないという課題があります。 Googleとすべてを試し、まだ考えていない。静的メソッド内のインスタンス変数?どうやって?

割り当ては次のとおりです。

create a class Calculator witch contains following:

  • constant pi (done)
  • constructor that accepts two following integers: operand1 and operand2 (done)
  • method to print out values of operand1 and operand2 (done)
  • instance methods for adding, subtracting, multiplying and division of operand1 and operand2 (done)
  • static methods for these same operations that accepts operand1 and operand2 as parameters (not done)
  • instance method for calculating area of circle with pi and operand1 (done)

In main method create object of class Calculator and call all methods and write result of all methods in console.

私は誰も私のためにコードを書く必要はありません、私はどのようにないアイデアを持っていないので、私は、静的メソッド内のパラメータとしてオペランド1とオペランド2を取得する方法のガイドラインが必要開始。

私は、次のコードを試みた:

public static int add(operand1, operand2) 
{ 
    return operand1 + operand2; 
} 

をして、次のエラーを得た:

Identifier expected, an object reference is required for non-static field, method or property.

+2

"静的メソッド_の内部でパラメータとしてoperand1とoperand2を取得する方法はありますか"〜err ...パラメータとして渡すだけですか?あなたは何を求めているのですか? – cubrr

+2

その割り当ては本当に良く書かれていません。私は失われた気分であなたを責めません。 – BoltClock

+0

私はこれを行います: public static int add(operand1、operand2){ return operand1 + operand2; } 次のエラーが発生します。 識別子が必要です。 非静的フィールド、メソッド、またはプロパティにオブジェクト参照が必要です。 これらのエラーを回避するにはどうすればよいですか? – Dwight

答えて

0

static methods for these same operations that accepts operand1 and operand2 as parameters (not done)

static methodsは次のようになります。

public static void Add(int operand1, int operand2) { … } 

Nをote:intは、使用している数値タイプを代用してください。

これらの方法は何を想定していますか?ほとんどの場合、Calculatorをインスタンス化し、追加して結果を出力します。

なぜこのような前提がありますか?スタティックメソッドを使用して同じ操作を表す場合は、クラスメソッドとして実装すると、ワンタイム使用の一般的なショートカットであり、その操作の実行は、およびです。

実際の実装は、OPへの長所として残されています。

2

静的メソッドはメンバーvaiablesにアクセスできません。それらは、インスタンスメソッドではなく、クラスの名前空間の下で関数として動作します。 2つのパラメータを受け入れる必要があるという割り当て仕様書が記載されています。したがって、静的メソッドを呼び出すときにそれらを提供する必要があります。つまり、メソッドのシグネチャがどのように見えるかをさらに検討します。

0

あなたの電卓クラスは静的メソッドにその方法で

public static return_type Method(parm_type parm1, parm_type parm2) 

を持っている必要があり、あなたがあなたの上で作業をやることですPARM1及びPARM2にアクセスすることができます。

-1

静的メソッドは次のように作成されます。

public class Class1 
{ 
    // For example: 
    // public static string GetFullName(string first, string last) 
    // In example above return type is string and it has 2 string parameters 

    public static <return type> NameOfMethod(parameterType parameterValue, ...) 
    { 
     // Code here 
     // This code can only access other static fields, properties and 
     // methods. It cannot access anything non static (instance). 
    } 
} 

は、静的メソッドは、クラス名でのみアクセス可能ですので、あなたがいないオブジェクトインスタンスを通じて、クラス名を使用して、それを呼び出し、そのメソッドを呼び出すには:

Class1.NameOfMethod(arg1, ...); 

コードを書かないと言ったのでコードを書きませんが、静的メソッドでは2つのパラメータ、つまりoperand1operand2があります。

+0

"OPはコードを望んでおらず、あなたの答えは正反対である、つまりコードがある" - あなたの答えと同じ無駄なコメント。 –

+0

ありがとうございます。 私はそれを理解していますが、私の先生は静的メソッドに定義されたクラス値(operand1とoperand2)を渡したいと思っていますが、私はその方法を知りません... – Dwight

+0

@Dwight Mostおそらく彼はそうしないでしょう。なぜなら、静的メソッドはそのクラスのインスタンスを渡さずにインスタンスフィールドにアクセスすることができないからです。 –

関連する問題