La classe Object est l'ancêtre de chaque classe. Il a été hérité. Il a les méthodes suivantes.
--ʻEquals () : Vérifie si une instance est la même que la vôtre. --
toString () `: renvoie une représentation sous forme de chaîne de votre propre contenu.
En ayant la classe Object, il est possible de créer des "méthodes qui peuvent passer des instances de n'importe quel type" en utilisant le polymorphisme, et de définir "des méthodes que toutes les classes veulent avoir au moins".
Quelque chose comme System.out.println
peut accepter un objet comme argument.
Alors
Sub.java
public class Sub{
//En supposant que quelque chose est écrit
}
Main.java
public class Main
public static void main(String[] args){
Sub s = new Sub();
System.out.println(s); // (1)
System.out.println(s.toString()); // (2)
}
Les résultats de sortie de «(1)» et «(2)» sont identiques.
Résultat d'exécution.
test.Sub@5c8da962
test.Sub@5c8da962
Remplacer et utiliser. Dans l'exemple précédent,
Sub.java
public class Sub {
String name = "Honda Mio";
public String toString(){
return this.name;
}
}
Main.java
public class Main
public static void main(String[] args){
Sub s = new Sub();
System.out.println(s); // (1)
System.out.println(s.toString()); // (2)
}
Résultat d'exécution.
Honda Mio// (1)
Honda Mio// (2)
C'est quoi ce programme? (Trop rugueux)
La méthode toString
elle-même de la classe String
est
String.java
public class toString(){
return this;
}
Cela semble être le seul. J'ai appuyé sur F3 dans Eclipse et je l'ai lu, mais c'était sur la ligne 2806.
Il peut être utilisé pour le jugement d'équivalence et le jugement d'égalité.
==
.Reconnaissance grossière. La méthode «equals» simple elle-même est
String.java
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String aString = (String)anObject;
if (coder() == aString.coder()) {
return isLatin1() ? StringLatin1.equals(value, aString.value)
: StringUTF16.equals(value, aString.value);
}
}
return false;
(C'était sur la ligne 1002) Si vous regardez cela de plus près maintenant, il fait nuit et il semble que vous resterez éveillé toute la nuit. Mais, très grosso modo, cela signifie qu'ils font en fait un jugement d'égalité. Ainsi, lorsque vous l'utilisez réellement, décidez ** de ce qui est équivalent **.
Ici, si le champ nom
est le même, Yoshi! Alors ...
Sub.java
public class Sub {
String name = "Honda Mio";
public boolean equals(Object o){
//S'ils sont égaux(Certainement équivalent)
if (this == o) {
return true;
}
//S'ils sont équivalents
if (o instanceof Sub) {
Sub s = (Sub) o;
if (this.name == s.name) {
return true;
}
}
//Si ni égal ni équivalent
return false;
}
}
Main.java
public class Main {
public static void main(String[] args) {
//Créer 3 instances
Sub s1 = new Sub();
Sub s2 = new Sub();
Sub s3 = new Sub();
//Entrez une valeur dans chaque champ de nom
s1.name = "Honda Mio";
s2.name = "Honda Mio";
s3.name = "Keisuke Honda";
//Sortie du résultat du jugement d'équivalence
System.out.pritln( s1.equals(s2) );
System.out.pritln( s1.equals(s3) );
}
}
Résultat de sortie.
true
false
C'est un programme vraiment grossier Eh bien, c'est un rappel de son utilisation, donc tout va bien ...
[Introduction à Java 2nd Edition] (https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-%E6%B8%85%E5%96%AC/dp/484433638X) Pp.541-551
Recommended Posts