おはよう!初級Java - 静的エラー
私はJavaの初心者です。
public class Test {
public static void main (String [] args){
int a = calcArea(7, 12);
System.out.println(a);
}
int calcArea(int height, int width) {
return height * width;
}
}
次のエラーが表示されます:
Non-static method calcArea(int, int) cannot be referenced from static content
それが何を意味し、私は次のコードをコンパイルすることはできませんか?どのように私はその問題を解決することができます..?
あなたの返信は高く評価されます。あなたのアドバイスから
をベースに はありがとう、私は新しいテストでインスタンスを作った()を次のように
public class Test {
int num;
public static void main (String [] args){
Test a = new Test();
a.num = a.calcArea(7, 12);
System.out.println(a.num);
}
int calcArea(int height, int width) {
return height * width;
}
}
はこの正しいですか?私はこれを行う場合の違いは何です...
public class Test {
public static void main (String [] args){
int a = calcArea(7, 12);
System.out.println(a);
}
static int calcArea(int height, int width) {
return height * width;
}
}
編集に関して: 'calcArea'は最初にオブジェクトに対して呼び出されるインスタンスメソッドであり、(一般的に)そのオブジェクトに関連するアクションを実行します。 2番目のメソッドは、 'calcArea'を静的(クラス)メソッドにします。通常、これは通常、オブジェクトインスタンスなしでアクションを実行します。ここで、 'calcArea'は、結果を返すargsに作用します。これは、クラスメソッドにとってうまくいきます。 'calcArea()'(パラメータなし)というインスタンスメソッドを持つRectangleというクラスでは、独自の高さと幅のメンバ変数をどのように掛けてオブジェクト固有の結果を返すかを知ることができます。 –