Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo zusammen,
vermutlich die absolute Trottel Frage aber ich versteh es einfach nicht.
Solange ich die Methoden mit static definiere geht der Aufruf,
wenn ich aber das Static weglasse klappt es nicht mehr.
Wenn ich das richtig verstanden habe weil static ohne Instanz auskommt
im Fall ohne muss ich der klasse die Methode erst bekannt machen.
ich hatte gehofft das ich das so
Java:
BruchrechnerTest myaddTest = new addTest( );
mache wie unten auch gemacht. Allerdings bekomme ich beim Compilieren:
Code:
BruchrechnerTest.java:37: error: cannot find symbol
BruchrechnerTest myaddTest = new addTest();
wobei er mir nach "new" addTest() anmeckert ?
Könnt ihr hier Klarheit schaffen bitte.
Gruß und Dank Mike
Hier noch der gesamte Code:
Java:
class BruchrechnerTest {
public void addTest() {
System.out.println("Add");
}
public static void mulTest() {
System.out.println("mul");
}
public static void divTest(){
System.out.println("Div");
}
public static void subTest(){
System.out.println("SB");
}
public static void kuerzenTest() {
System.out.println("KUER");
}
public static void main(String[] a ) {
BruchrechnerTest myaddTest = new addTest( );
myaddTest.addTest();
BruchrechnerTest.subTest();
BruchrechnerTest.mulTest();
BruchrechnerTest.divTest();
BruchrechnerTest.kuerzenTest();
}
}
Fast richtig. Methoden mit "static" sind sogenannte Klassenmethoden. Du musst allerdings nicht "eine Methode bekannt machen", sondern eine Instanz der Klasse erstellen:
Java:
BruchrechnerTest myAddTest = new BruchrechnerTest();
Ich glaube du hast das Prinzip von dem new-Operator noch nicht ganz verstanden.
Der new-Operator ist dafür da, ein neues "Exemplar" / Objekt einer Klasse zu erstellen. Die Syntax hierfür ist Klassenname objektName = new Klassenname(<optionale parameterliste>)
Über dieses Objekt kannst du dann Methoden aufrufen mit der Syntax objektName.methodenName(). Statische Methoden können ohne Objekt existieren und damit direkt über Klassenname.StatischeMethode() aufgerufen werden.
Also Chance genutzt gleich noch eine Frage Hinterher:
Wie unschwer zu erkennen ist soll das ein Testprogramm werden welches Methoden einer zweiten Klasse Bruch testet. Damit diese Klasse weis wo die anderen Methoden zu finden sind sollte ich vermutlich wieder ähnlich vorgehen.
Java:
Bruch3 myOpp = new Bruch3();
Damit sollte ich doch dann auf die Methoden der anderen klasse zugreifen können, aber irgendwo sollte ich ja noch sagen wo Bruch3.class zu finden ist oder reicht es tatsächlich aus wenn es im selben Ordner ist?