Die Object-Klasse ist der Vorfahr jeder Klasse. Es wurde geerbt. Es hat die folgenden Methoden.
--equals ()
: Überprüfen Sie, ob eine Instanz mit Ihrer eigenen identisch ist.
--toString ()
: Gibt eine Zeichenfolgendarstellung Ihres eigenen Inhalts zurück.
Mit der Object-Klasse ist es möglich, mithilfe von Polymorphismus eine "Methode zu erstellen, die eine Instanz von einem beliebigen Typ übergeben kann" und eine "Methode zu definieren, die mindestens alle Klassen haben möchten".
So etwas wie "System.out.println" kann ein Objekt als Argument akzeptieren. Damit
Sub.java
public class Sub{
//Angenommen, etwas ist geschrieben
}
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)
}
Die Ausgabeergebnisse von "(1)" und "(2)" sind gleich.
Ausführungsergebnis.
test.Sub@5c8da962
test.Sub@5c8da962
Überschreiben und verwenden. Im vorherigen Beispiel
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)
}
Ausführungsergebnis.
Honda Mio// (1)
Honda Mio// (2)
Was zum Teufel ist dieses Programm? (Zu rau)
Die toString
Methode selbst der String
Klasse ist
String.java
public class toString(){
return this;
}
Dies scheint der einzige zu sein. Ich drückte F3 in Eclipse und las es, aber es war in Zeile 2806.
Es kann für das Äquivalenzurteil und das Gleichheitsurteil verwendet werden.
==
bestimmt.Grobe Erkennung. Die einfache "Gleich" -Methode selbst ist
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;
(Es war in der Linie 1002) Wenn Sie sich das jetzt genauer ansehen, ist es Nacht und es sieht so aus, als würden Sie die ganze Nacht wach bleiben. Aber grob gesagt bedeutet dies, dass sie tatsächlich ein Gleichstellungsurteil fällen. Wenn Sie es also tatsächlich verwenden, entscheiden Sie, was gleichwertig ist.
Wenn das Feld "Name" dasselbe ist, wird Yoshi! Damit ...
Sub.java
public class Sub {
String name = "Honda Mio";
public boolean equals(Object o){
//Wenn sie gleich sind(Auf jeden Fall gleichwertig)
if (this == o) {
return true;
}
//Wenn sie gleichwertig sind
if (o instanceof Sub) {
Sub s = (Sub) o;
if (this.name == s.name) {
return true;
}
}
//Wenn weder gleich noch gleichwertig
return false;
}
}
Main.java
public class Main {
public static void main(String[] args) {
//Erstellen Sie 3 Instanzen
Sub s1 = new Sub();
Sub s2 = new Sub();
Sub s3 = new Sub();
//Geben Sie in jedes Namensfeld einen Wert ein
s1.name = "Honda Mio";
s2.name = "Honda Mio";
s3.name = "Keisuke Honda";
//Geben Sie das Ergebnis der Äquivalenzbeurteilung aus
System.out.pritln( s1.equals(s2) );
System.out.pritln( s1.equals(s3) );
}
}
Ausgabeergebnis.
true
false
Es ist ein wirklich grobes Programm Nun, es ist eine Erinnerung daran, wie man es benutzt, also ist alles in Ordnung ...
[Einführung in 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