Für eine Übung, die ich mache, habe ich drei Methoden, alles isEven testet einen Wert und gibt wahr oder falsch zurück. One isEven ist eine Instanzmethode und die anderen beiden sind statische Methoden mit jeweils einem Parameter. Wenn ich eine neue testClass mache und die Methoden in der main-Methode ausführe, funktioniert die instance isEven-Methode einwandfrei. Wenn ich jedoch versuche, die statischen isEven-Methoden zu verwenden, erhalte ich den Fehler symbol not found. Wenn ich jedoch die Hauptmethode in der tatsächlichen App-Klasse erzeuge und sie dort ausführe, funktionieren die überladenen Methoden. Warum passiert dies? Sollten die statischen Methoden nicht in einer anderen Klasse ausgeführt werden können? Die verwendeten Methoden sind unten.Überladene statische Methoden, die nicht in anderen Klassen ausgeführt werden?
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);
}
}
nur als Hinweis: Überlastung statische Methoden in Java macht so keinen Sinn nicht möglich ist ... –
Können Sie einen Stacktrace hinzufügen? – Kode
sollten Sie uns zeigen, wie Ihr Code aussieht, wenn er nicht funktioniert (mit der statischen Methode in einer separaten Klasse von der Hauptversion). Denn im Moment zeigen Sie uns nur Code, der funktioniert, sodass das Debuggen schwieriger ist. –