オブジェクトクラスは、すべてのクラスの親クラスです
クラスを宣言するとき、デフォルトはObjectを継承します
public class Hero extends Object
toString()
ObjectクラスはtoStringメソッドを提供するため、すべてのクラスにtoStringメソッドがあります
。toString()は、現在のオブジェクトの文字列式を返すことを意味し
ます。System.out.printlnを介してオブジェクトを出力すると、toString()の戻り値が出力されます。オブジェクト。
package charactor;
public class test extends Object{
String name;
public String toString() {
return name;
}
public static void main(String args[]) {
test a = new test();
a.name = "德玛";
System.out.println(a.toString());
System.out.println(a);
}
}
finalize()
オブジェクトに参照がない場合、ガベージコレクションの条件を満たす
ガベージコレクションが行われると、finalize()メソッドが呼び出されます。
finalize()は、開発者が積極的に呼び出すメソッドではありませんが、仮想マシンJVMによって呼び出されます。
package charactor;
public class test extends Object{
String name;
public String toString() {
return name;
}
public static void main(String args[]) {
test b;
for(int i = 0;i<100000;i++) {
b = new test();
}
}
public void finalize() {
System.out.println("这个对象正在被回收!!!");
}
}
equals()
package charactor;
public class test extends Object{
String name;
int hp;
public String toString() {
return name;
}
public static void main(String args[]) {
test a = new test();
a.hp = 100;
test b = new test();
b.hp = 100;
System.out.println(a.equals(b));
}
public boolean equals(Object o) {
if (o instanceof hero) {
hero h = (hero) o;
return this.hp==h.hp;
}
return false;
}
}
==
これはObjectメソッドではありませんが、2つのオブジェクトが同じであるかどうかを判断するために使用されます。
より正確には、2つの参照が同じオブジェクトを指しているかどうかを判断するために使用されます。
public static void main(String args[]) {
test a = new test();
a.hp = 100;
test b = new test();
b.hp = 100;
test c = a;
System.out.println(a==b);
System.out.println(a==c);
}
ハッシュコード()
hashCodeメソッドはオブジェクトのハッシュ値を返しますが、ハッシュ値の意味を理解する前にこのメソッドを説明することは意味がありません。
hashCodeの意味は、ハッシュコードの原理に関する章で説明されます。
スレッド同期関連のメソッド
オブジェクトは、スレッド同期関連のメソッド
wait()
notify()
notifyAll()も提供します
。コンテンツのこの部分の理解は、スレッドセーフの十分な理解に基づく必要があるため、スレッドの相互作用の章で説明します。
getClass()
getClass()は、オブジェクトのクラスオブジェクトを返します。これは、高度なコンテンツに属しているため、
ここでは説明しません。
演習-Object⭐⭐Item
のtoString()、finalize()、equals()メソッドを書き直しますtoString()
Itemの名前を返します+価格
finalize()現在のオブジェクトがリサイクルされていることを出力します
equals(Object o)最初にoはアイテムタイプであり、2つのアイテムの価格が同じであるかどうかを比較します
回答:
package charactor;
public class test extends Object{
String name;
int price;
public String toString() {
String tag = name + price;
return tag;
}
public void finalize() {
System.out.println("正在回收");
}
public boolean equals(Object o) {
if(o instanceof test) {
test h = (test) o;
return this.price==h.price;
}
return false;
}
public static void main(String args[]) {
test a = new test();
a.name = "德玛西亚";
a.price = 100;
test b = new test();
b.name = "锐雯";
b.price = 100;
System.out.println(a.equals(b));
}
}