2017-08-02 2 views
-5

J'ai dans ma classe principale en javaRemplacer toString() méthode java

public class Main { 

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

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

Je veux remplacer cette méthode toString() qui a appelé implicitement. pourquoi la sortie est 0 pas "lol"?

+3

'System.out.println (nouveau principal());' 'sortira lol'. – nickb

+2

Il n'y a aucune instance de la classe Main ici. Vous n'avez pas appelé cette méthode toString. Vous avez celui pour int – duffymo

+3

"_why sortie est 0 pas" lol "_" Parce que vous avez imprimé un nombre entier, pas votre classe. – csmckelvey

Répondre

1

pourquoi la sortie est 0 pas "lol"?

parce que vous imprimez un entier et non une instance de cette Main class

vous pouvez effectuer les opérations suivantes

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); 
    } 
} 

Notez que vous pouvez faire

System.out.println(myMain); 

les mêmes que

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