Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

OK, das will ich dir verraten... ;)

Mit this referenzierst du immer auf die aktuelle Instanz der Klasse. Rufst du also this.length() auf, wird auch die Objektmethode length() in dieser Klasse aufgerufen.

Nutzt du jetzt allerdings name.length(), so wird die Methode legth() aus java.lang.String aufgerufen, also eine Methode, die Java schon mit sich bringt. Das hängt damit zusammen, dass name vom Typ String ist, und deswegen wird auch eine Objektmethode dieser Klasse (nämlich java.lang.String) aufgerufen. Siehe hier: http://java.sun.com/j2se/1.4.2/docs/api/

Das Ergebnis ist für dich freilich das gleiche, weil ja die length()-Methode in DEINER Klasse auch nur die length()-Methode aus java.lang.String nutzt. Nur wie gesagt wird deine Methode nicht aufgerufen, du kannst sie also getrost aus dem Quelltext löschen.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

 ??? sorry hab jetzt gar nix kapiert...was kann ich löschen? und warum gehts bei mir mit this.length nicht?
bin noch nicht so bewandert was JAVA und dessen Ausdrücke angeht...Beispiele wären da immer hilfreich
(wenns nicht zuviel Arbeit macht?)

also ich versteh nicht ganz wo jetzt da der Unterschied sein soll ?! bin verwirrt.... ???

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
also ich versteh nicht ganz wo jetzt da der Unterschied sein soll ?! bin verwirrt.... ???

Genau wie erklärt: der Unterschied ist, dass durch this.length die Objektmethode length() deiner eigenen Klasse aufrufst, während name.length eine Objektmethode einer völlig anderen Klasse aufruft.

So schließt sich übrigens der Kreis: ich hatte am Anfang mal irgendwo erwähnt, dass die Namenswahl "length" für den neuen Methodennamen schlecht ist (ich weiß du kannst nichts dafür, das Buch will es so). Denn die Konsequenz ist, dass du selber nicht mitbekommst, welches length() nun eigentlich ausgeführt wird.

Versuch's doch mal mit der Umbenennung der Methode in myLength(). Was dort drin steht, bleibt natürlich gleich, aber der Aufruf der Methode im Konstruktor muss natürlich angepasst werden. Vielleicht hilft dir das, den Unterschied mitzubekommen.

Kleiner Tipp: Wenn du im Konstruktor dann nach allen Änderungen name.myLength() aufrufst (analog deines jetzigen Codes), gibt's einen Fehler. Das ist der Punkt, an dem es klingeln sollte ;)

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

nur mal zum verständnis, weil ich da jetzt nicht weiter dran rumbasteln will: *keine Zeit hab*

also:

name.length benutzt die Methode length die schon in der Javabibliothek definiert ist?
und this.length verweist auf eine Methode die ich selber definiert hab, auch wenn die dann letzlich wieder auf die Javabibliothek zurückgreift?

oder?? mmmh...steig immer noch nicht so ganz durch...naja ich mach mal die anderen Kapitel weiter vielleicht wirds dann klara äh klarer  8)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
und this.length verweist auf eine Methode die ich selber definiert hab, auch wenn die dann letzlich wieder auf die Javabibliothek zurückgreift?

Ja sicher. Schau dir doch mal den Inhalt der Methode an.

Aber vielleicht solltest du wirklich erstmal in deinem Buch weiterlesen. Da wird mit der Zeit sicher noch einiges klar, und die Grundlagen können und wollen wir im Forum sowieso nicht vermitteln ;)

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

jo...werd ich machen, muss ich sogar  8)

trotzdem danke, aber ich meld micht bestimmt bald wieder mit ner anfänger frage  ;)


« C++: Buch/Editor- empfehlungHandbuch Visual Basic 2005??? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Java
Java ist eine von der Firma SUN entwickelte Programmiersprache. Da Java unabhängig vom Betriebssystem läuft, kann ein einmal geschriebenes Programm auf allen Ja...

Javascript
JavaScript ist eine weit verbreitete Skriptsprache, die ursprünglich von Netscape für das DOM-Scripting für Webseiten entwickelt wurde. Sie hat sich seitde...

Type 1 Schriften
Type 1 ist ein Schriftformat, das die Schrift-Beschreibung in Form von PostScript-Befehlen speichert. PostScript-Schriften werden mithilfe von PostScript-Operationen besc...