2017-08-02 1 views
-5

Ich habe dies in meiner Hauptklasse in JavaAufschalten Methode toString() java

public class Main { 

    @Override 
    public String toString(){ 
     return "lol"; 
    } 

    public static void main(String[] args) { 
     int aaa=0; 
     System.out.println(aaa); 
    } 
} 

I außer Kraft setzen möge, um diesen toString() Methode, die implizit genannt. warum Ausgang ist 0 nicht "lol"?

+3

'System.out.println (neues Main());' wird 'lol' ausgeben. – nickb

+2

Es gibt keine Instanz der Main-Klasse hier. Sie haben diese toString-Methode nicht aufgerufen. Sie haben die für int – duffymo

+3

"_why Ausgabe ist 0 nicht" lol "_" Becuase Sie eine ganze Zahl gedruckt, nicht Ihre Klasse. – csmckelvey

Antwort

1

Warum ist Ausgabe 0 nicht "lol"?

, weil Sie eine ganze Zahl und nicht eine Instanz, die Sie Main class

drucken Sie den folgenden

public class Main { 

    @Override 
    public String toString(){ 
     return "lol"; 
    } 

    public static void main(String[] args) { 
     // int aaa=0; 
     Main myMain = new Main(); 
     System.out.println(myMain); 
    } 
} 

Notiz, die Sie

System.out.println(myMain); 

die gleiche wie tun tun können

System.out.println(myMain.toString());