Aufruf der statischen Methode in Java [Duplikat]

9

Kann jemand erklären, warum die Ausgabe des folgenden Programms " Called "

ist %Vor%

Ich weiß, dass wir die statische Methode mit Klassenreferenz aufrufen können, aber hier rufe ich mit der Nullreferenz auf. Bitte klären Sie meine Zweifel

    
Raj 02.01.2013, 16:49
quelle

3 Antworten

14

Im Byte-Code

%Vor%

wird

sein %Vor%

Der Compiler würde den Aufruf mit dem Klassennamen für statische Methoden konvertieren. beziehen Sie sich auf diese Frage auf SO, die ich selbst habe es gefragt.

    
PermGenError 02.01.2013, 16:50
quelle
2

Es spielt keine Rolle, ob die Instanz null ist, weil Sie eine statische Methode aufrufen. Denken Sie so darüber nach.

Jede statische Methode entspricht einer Klassenmethode , während eine nicht statische Methode äquivalent zu ist eine Instanzmethode .

Daher spielt es keine Rolle, welchen Wert die Instanz benötigt, solange Sie mit statischen Methoden oder Mitgliedern arbeiten.

    
Mihai M. 02.01.2013 17:24
quelle
0

Statische Methoden können über den Klassennamen oder eine Instanz aufgerufen werden. Ich würde versuchen zu vermeiden, sie durch eine Instanz zu nennen (auch eine Menge von Werkzeugen warnt Sie wegen schlechter Übung).

    
MrSmith42 02.01.2013 16:52
quelle

Tags und Links