La classe d'objets a une méthode appelée, toString (). Cette méthode renvoie une représentation de chaîne de l'objet d'une classe normale. Toutes les classes héritent de cette méthode de l'objet de classe. Chaque tableau (comme un objet) a une méthode similaire.
Malheureusement, cette représentation de chaîne de l'objet est un code texte court (texte littéral court à chaîne). Ce n'est pas très utile, bien qu'il puisse être décodé. Un tel décodage n'est pas abordé dans cet article. Et donc, le programmeur doit remplacer cette méthode afin d'avoir une représentation de l'objet; L'utilisateur de l'ordinateur appréciera que. Le remplacement est abordé dans cet article.
Comportement par défaut de la méthode toString ()
Types primitifs
Les types primitifs tels que l'INT existent à part entière. Cependant, chaque type primitif en Java a une classe correspondante (wrapper). En ce qui concerne la conversion d'objets primitifs en chaînes, ce sont les classes correspondantes qui doivent être utilisées. Le programme suivant l'illustre pour l'int. La classe correspondante pour int est la classe entier.
classe publique TheClassLa sortie est 5. Si «entier» était tapé en tant qu'INT, alors un message d'erreur aurait été émis au moment de la compilation. La méthode toString () de la plus grande classe d'ancêtre a été utilisée ici, sans aucun problème. C'est-à-dire que l'entier, 5 a été converti en chaîne et imprimé sans aucun problème. Cependant, si la classe était une classe définie par programmeur ou un autre type de classe prédéfinie, alors il y aurait eu un problème.
Classe définie par le programmeur
Considérez le programme suivant qui imprime la représentation de l'objet défini par le programmeur, OBJ:
classe ACLASSLa sortie est:
Aclass @ 6ff3c5b5Ceci est un texte codé court - pas très utile à l'utilisateur. L'utilisateur a peut-être préféré quelque chose comme:
prop1 => 1;Ce sont les différentes propriétés (champs) et leurs valeurs. Ce qui sépare une propriété de sa valeur dans l'impression est «=>», qui devrait être introduit par le programmeur. Dans une question comme celle-ci, les méthodes ne sont généralement pas imprimées.
Déployer
Considérez le programme suivant, où le tableau en tant qu'objet, ARR, doit être imprimé:
classe publique TheClassLa sortie est,
[Ljava.égouter.Chaîne; @ D716361qui est un autre code texte. Est-ce ce que tu voulais? Vous auriez adoré voir quelque chose comme:
un, deux, troisoù le séparateur d'éléments est «,».
Liste
Considérez le programme suivant, lorsqu'un ArrayList en tant qu'objet, AL, doit être imprimé:
Importer Java.user.*La sortie est:
[un, deux, trois]La sortie est assez bonne! Cela signifie que le programmeur n'a pas à remplacer l'objet.Méthode toString () Lorsqu'il concerne la liste Array (ou la liste possible en général). Cependant, en ce qui concerne les objets définis par le programmeur ou le tableau, le programmeur doit remplacer la méthode.
Carte
Considérez le programme suivant, où un hashmap en tant qu'objet, HM, doit être imprimé:
Importer Java.user.*La sortie est:
un = 1, deux = 2, trois = 3La sortie est assez bonne! Les paires de clés / valeur se distinguent, avec le séparateur d'éléments, «,» ». Cela signifie que le programmeur n'a pas à remplacer l'objet.Méthode toString (), lorsqu'elle concerne le hashmap (ou la carte possible en général). Cependant, en ce qui concerne les objets définis par le programmeur ou le tableau, le programmeur doit remplacer la méthode.
Le reste de cet article traite de la mise à l'origine de l'objet.TOSTRING () Méthode héréditaire de l'objet défini par le programmeur et du tableau.
ToString overring ()
Déployer
Avec le tableau, aujourd'hui, le primordial est indirect ou solution. Java a une classe appelée, des tableaux. Cette classe a la méthode de tostring, déjà remplacée par Java. Dans la classe, la méthode toString () est statique: cela signifie que la classe des tableaux n'a pas à être instanciée pour sa méthode toString () à utiliser. Ici, la méthode toString () prend un argument, qui est l'identifiant du tableau. Il produit une sortie, où le séparateur est «,». Réseaux de classe, est dans le java.user.* emballer. Le programme suivant montre la solution de contournement pour les tableaux:
Importer Java.user.*La sortie est:
[dix.1, 20.2, 30.3]La sortie est assez bonne! Et donc, aujourd'hui, le programmeur n'a plus besoin de coder une méthode primordiale, pour la méthode toString (), pour le tableau Java. Le programmeur fait une solution de contournement avec des tableaux et son toString ().
Objet défini par le programmeur
Avec la classe définie par le programmeur, la méthode toString () de la classe d'objets, doit être redéfinie, comme illustré dans la classe définie par programmeur suivante:
classe ACLASSLa technique consiste à utiliser l'opérateur de concaténation des chaînes, + pour rejoindre des littéraux non corrigées avec des littéraux de cordes. La «@Override» précédente empêche certaines erreurs dans la méthode remplacée. La redéfinition ici est remplacée. Une classe définie par le programmeur correspond à l'objet défini par le programmeur. La méthode java main () suivante est appropriée pour la classe ci-dessus:
classe publique TheClassLa sortie est:
prop1 => 1Cette sortie est mieux appréciée par l'utilisateur que le code texte court, "Aclass @ 6FF3C5B5". N'oubliez pas que la définition primordiale se déroule dans la classe d'intérêt.
Conclusion
La classe d'objets a une méthode appelée, toString (). Cette méthode renvoie une représentation de chaîne de l'objet d'une classe. Toutes les classes héritent de cette méthode de l'objet de classe. Chaque tableau (comme un objet) a une méthode similaire. Chaque classe doit être remplacée de cette méthode, indirectement ou directement.
Avec les types primitifs, utilisez les types de référence (e.g., Entier pour int), où Java a déjà une méthode prédéfinie de tostring (), qui est satisfaisante. Avec des listes et des cartes également, Java a déjà une méthode prédéfinie de toString (), qui est satisfaisante. Avec un tableau, faites une solution de contournement: utilisez la méthode toString () de la classe des tableaux. Avec la classe définie par programme.