Frage zu . Operator

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
570
Hallo,

Mit:
Code:
String word = "abc";
char letter = word.charAt(1);
kann ich ja den ersten char aus dem String herauspicken.
Dabei schreibe ich vor den Punkt meinen selbst definierten String.

Mit:
Code:
word = word.toLowerCase();
wandle ich alle Großbuchstaben in Klienbuchstaben um.
Dabei schreibe ich auch vor den Punkt meinen selbst definierten String.

Mit:
Code:
if (Character.isAlphabetic(letter))
...
überprüfe ich ob der Char ein normaler Buchstabe ist.
Warum schreibe ich hier nun aber den Typ vor den Punkt und nicht meinen selbst definierten char, also:
Code:
if (letter.isAlphabetic())
...

Gibt es dazu irgend eine Regel?

EDIT: Sprache ist Java :)
 
Zuletzt bearbeitet:
Es gibt eben statische Methoden und nicht statische (Instanz) Methoden. Erstere werden am Typ (Klasse) aufgerufen, die zweite Variante an einer bestimmten Objekt-Instanz (Variable).

Die nicht statischen Methoden arbeiten dann entsprechend immer auf der entsprechenden Instanz an der sie aufgerufen werden, während die statischen Methoden üblicherweise eher allgemeine Funktionalitäten enthalten.
 
je nach sprache (ich vermute hier Java?) ist char ein primitiver datentyp, d.h. er hat keine eigenen (vererbten oder anderweitig definierte) methoden, sondern wirklich bloss den wert. da musst du dann die statischen methoden der Character-klasse benutzen, um dessen eigenschaften zu untersuchen.
 
Das ist ein Variante weshalb das gemacht sein könnte. Eine andere Möglichkeit ist das die Methode Character.isAlphabetic(letter) als Übergabeparamater etwas allgemeines wie Object annimmt und dann bei der Überprüfung eine Konvertierung versucht. Wenn man das als Instanz-Methode schreiben wollte müsste man diese also an Object definieren und dann wäre sie an jeder Objektinstanz zu finden was die Sache unübersichtlich und auch unperformant macht (wenn die Methodentabelle zu lang wird)
 
Zurück
Oben