/** Auteur: Mohamed Lokbani cet exemple présente la méthode toString(). chaque classe même sans l'utilisation de l'héritage dérive en réalité d'une classe "supreme": Object dans cette classe, il est défini une fonction qui convertie les champs de X vers String si nécessaire. en réalité si le mécanisme de conversion n'est pas la, tout ce que cette fonction va réaliser c'est d'afficher le type de L'objet qui fait l'appel et où se trouve t-il "en mémoire" (en réalité dans une hashtable: une table spécialisée contenant des clés. Il est associé à chaque objet une clé). il est conseillé de définir dans chaque classe que vous allez définir une méthode toString pour masquer celle par défaut et afficher par conséquence des informations que vous jugez plus utiles que celles fournies par la méthode par défaut. */ public class ToString { // dans le cas où vous voudriez masquer l'existence de la méthode // par défaut toString fournie par la classe Object, enlevez // les commentaires des 3 prochaines lignes: /*public String toString(){ // pas très utile comme message mais c'est juste un exemple ... return("surdéfinition de ToString, essayez maintenant!"); } */ public static void main(String [] args) { // nom_classe@hashcode (lieu "en mémoire" dans la table hash // où l'objet est sauvegardé) // On crée deux objet P & Z ToString P = new ToString(); // println attende de recevoir un String or la on lui a passé // comme argument un ToString, i.e. un objet du type ToString. // println va appeler dans ce cas toString de la classe Object // et affichera donc: // type_de_objet@une_certaine_cle System.out.println(P); ToString Z = new ToString(); System.out.println(Z); // si j'affecte le contenu de P à Z. Copie surperficielle! // on affecte les référence uniquement. Comparez les clés // affichées et remarquez qu'elles sont identiques. Z = P; System.out.println(Z); } }