Objectクラス
Objectクラスは、すべてのクラスのトップレベルの親が、クラスが直接または間接的に継承することで実行されています。
public class myTest01 {
public static void main(String[] args){
Object o = new Object();
//object中的方法。
System.out.println(o.hashCode());//返回此对象的一个hash值
System.out.println(o.toString());//返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。通俗理解获取该类的字节码文件对象。
System.out.println(o.getClass());//表示此对象运行时类的 Class 对象。
}
}
メソッドObjectクラスのクローン
//Object中的原方法实现。
protected native Object clone() throws CloneNotSupportedException;
//首先克隆方法的修饰词是protected的所以在继承Object类的时候,想要使用这个方法必须近行继承重写
class test{
String str = "hello";
@Override
//重写时将权限修饰词改为public
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
//因为native修饰的源码是JVM底层所交互,这里我们看不到源码。所以不能重写里边所拥有的方法
//方法重写后在调用这个方法的时候,必须要捕获编译异常。
}
対象
浅いクローン:クローンはオブジェクトであり、オブジェクトは、別のクラスに被検体内部クローニングします。追加のオブジェクトがクローンであることなく、この時間は、ちょうど別のオブジェクトのクローンアドレス値です。
public class myTest01 {
public static void main(String[] args) throws CloneNotSupportedException {
//捕获编译异常后才能使用此方法。
test test = new test();
Object clone = test.clone();
}
}
class test{
String str = "hello";
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
Objectのequalsメソッドを
実際の比率は、equalsメソッドをアドレスに、ヒープメモリにあるが、実際のプロセスでは、我々の使用は、メモリアドレスは、多くの場合、メソッドをオーバーライドし、いくつかの理由で、あるのではなく、いくつかのタイプの値の比です。
//定义一个实例方法
class test{
String str;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
test test = (test) o;
return Objects.equals(str, test.str);
}
}
でのオブジェクトのtoStringメソッドのオーバーライド
メモリアドレスの値は、一般的に、クラスの多くは、toStringメソッドを上書きされ、バリアブル印刷メンバーの値を聞かせて印刷されている必要があります。
class test{
String str = "hello";
@Override
public String toString() {
return "test{" +
"str='" + str + '\'' +
'}';//重写后的toString方法,打印出来的就是字符串成员变量值。可以根据自己的需求重写。
}
}