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.
Hi ich habe ein riesen Problem;-( ich war immer der meinung das ich eine Methode aufrufe in dem ich sage objekt.methode() aber in diesem Programm rufe ich Nur auf System.out.println(w)
es sind insgesammt drei klassen..aber ich verstehe eben nur diesen einen Aufruf net;-(
Code:
public class Wortliste {
public Wortlistenknoten listenkopf;
public Wortlistenknoten iterator;
public Wortliste() {
listenkopf=null;
}
public void fuegeHinzu(String wort) {
if (listenkopf == null) {
listenkopf=new Wortlistenknoten(wort);
}
else
while(this.wortexistiert(wort)==false){
Wortlistenknoten k= new Wortlistenknoten(wort);
Wortlistenknoten aktuellerKnoten=listenkopf;
Wortlistenknoten vorgaengerKnoten=null;
while ((aktuellerKnoten.gibInhalt().compareTo(k.gibInhalt()) <0)
&& aktuellerKnoten.gibNachfolger()!=null) {
vorgaengerKnoten=aktuellerKnoten;
aktuellerKnoten=aktuellerKnoten.gibNachfolger();
}
if (vorgaengerKnoten==null) {
k.setzeNachfolger(listenkopf);
listenkopf=k;
}
else{
vorgaengerKnoten.setzeNachfolger(k);
k.setzeNachfolger(aktuellerKnoten);
}
}
}
public boolean wortexistiert(String wort) {
iterator=listenkopf;
while(iterator != null){
if (iterator.gibInhalt().equals(wort)){
return true;
}
iterator=iterator.gibNachfolger();
}
return false;
}
public String toString() {
String ergebnis = "";
ergebnis = ergebnis + "Listeninhalt:";
Wortlistenknoten k = listenkopf;
while (k != null) {
ergebnis = ergebnis + " " + k.gibInhalt();
k = k.gibNachfolger();
}
return ergebnis;
}
}
Code:
public class Wortlistentest {
public static void main(String []args) {
Wortliste w=new Wortliste();
w.fuegeHinzu("Haus");
System.out.println(w);
w.fuegeHinzu("Haus");
System.out.println(w);
w.fuegeHinzu("Boot");
System.out.println(w);
w.fuegeHinzu("Boot");
System.out.println(w);
w.fuegeHinzu("Urlaub");
System.out.println(w);
w.fuegeHinzu("Pferd");
System.out.println(w);
w.fuegeHinzu("Urlaub");
System.out.println(w);
}
}
woher weiss denn w das die toStringMethode im gehört?
also System kann man immer verwenden. es enthält ein paar der grundlegenden methoden. es dient unter anderem auch dazu um system eigenschaften abzufragen, informationen an die konsole (prinltn kann man auch auf datein umbiegen, aber das ist ne andere sache) auszugeben oder auszulesen.
zum aufruf: es können von klassen unter bestimmten vorraussetzungen methoden direkt aufgerufen werden ohne, dass ein objekt davon erstellt wurde. ein weiteres beispiel wäre noch Math.cos
aber eigentlich ne gute frage, vielleicht schreib ichs ja noch ins faq rein, wenn ich zeit habe
Alle klassen sind automatisch von Object abgeleitet ( ist nun mal so ... auch wenn kein extends da steht ). Object hat die methode toString(). Und System.out.println( Objekt ) macht nix weiter als für das übergebene Objekt die Methode toString() aufzurufen und das Ergebnis auszugeben. Wenn du in deiner klasse die methode toString() nicht überschreibst, wird automatisch die von Object aufgerufen ( wegen der Vererbung !!! ). Da kommt dann aber nur die Standardausgabe raus ( kannst's ja mal ausprobieren ). Sobald du aber in deiner klasse die Methode toString() rein machst, wird nicht mehr die von Object aufgerufen sondern deine Eigene.