2016-07-23 23 views
2

Warum die toString() - Methode in einer beliebigen Wrapper-Klasse (auch Unterklasse der Number-Klasse) statisch ist, während die Zahl als Parameter übergeben wird, aber nicht beim Aufruf eines Objekts?
Wie in Float-Klasse: -
Wenn Zahl vorbeiFloat-Klasse toString-Methode

static String toString(float num) 

Wenn auf Objekt aufrufen: -

String toString() 

Antwort

2

Sie sind zwei verschiedene Methoden.

1.Die statische Methode

public static String toString(float f) 

ist ein statisches Verfahren, so die Klasse zugeordnet ist, nicht zu Instanzen. Sie benötigen keine Instanz, um sie aufzurufen. So eine statische Methode ist statisch genannt zum Beispiel indem Integer.toString(f)


2.das Instanzmethode

public String toString() 

eine Instanzmethode ist, so zu Instanzen der Klasse zugeordnet ist und nicht auf die Klasse selbst . Sie müssen eine Instanz haben, um sie aufzurufen.


auf Ihre Frage zu beantworten, nehmen wir das zu tun, was die statische toString(myLong) Methode tut möchten in der Lage sein, eine Instanz-Methode zu haben. Auf diese Weise können wir es tun: myLong.toString(myLong)

es zu erreichen, soll die ursprüngliche statische Methode in zwei Varianten zur Verfügung gestellt wurde: eine mit dem statischen Modifikator und einem anderen, ohne die statische Modifier (Instanz-Methode), während die mit Die Instanzmethode wird nie den Zustand ihrer Instanz verwenden, um die toString() auszuführen.
Warum sollten wir also eine Instanzmethode dafür erstellen?