私が行っている練習では、3つのメソッドがあります。すべて値をテストし、trueまたはfalseを返すisEvenです。 1つのisEvenはインスタンスメソッドであり、他の2つはそれぞれ1つのパラメータを持つ静的メソッドです。新しいtestClassを作成し、mainメソッドでメソッドを実行すると、インスタンスisEvenメソッドは正常に動作しますが、静的isEvenメソッドを使用しようとすると、シンボルが見つかりません。しかし、実際のアプリケーションクラスでmainメソッドを作成して実行すると、オーバーロードされたメソッドが機能します。なぜこうなった?静的メソッドは別のクラスでも実行できませんか?使用される方法は以下のとおりです。オーバーロードされた静的メソッドは他のクラスで実行されていませんか?
public class MyInteger {
private int value;
public boolean isEven() {
if(this.value % 2 == 0) {
System.out.println(value + " is an even number.");
return true;
}
else {
System.out.println(value + " is not an even number.");
return false;
}
}
public static boolean isEven(int value) {
if(value % 2 == 0) {
System.out.println(value + " is an even number.");
return true;
}
else {
System.out.println(value + " is not an even number.");
return false;
}
}
public static boolean isEven(MyInteger value) {
if(value.value % 2 == 0) {
System.out.println(value.value + " is an even number.");
return true;
}
else {
System.out.println(value.value + " is not an even number.");
return false;
}
}
}
class testMyInteger {
public static void main(String[] args) {
MyInteger val1 = new MyInteger(2);
int val = 2;
System.out.println("The value of this object is " + val1.getValu());
val1.isEven();
val1.isOdd();
val1.isPrime();
isEven(val1);
}
}
:ことはできませんなどのJavaの静的メソッドをオーバーロードは意味がありません... –
あなたはスタックトレースを追加することはできますか? – Kode
コードが動作していないときのコードの表示方法を教えてください(メインとは別のクラスに静的メソッドを持つ)。今のところ、コードは動作しているので、デバッグするのは難しいです。 –