2020-12-01

28 Object类

28 Object类

含义

任何类的直接父类或间接父类

常用操作(被子类重写的方法)

1.toString方法

对于引用数据类型,打印变量名的时候自动调用toString方法,默认打印的是地址,

public String toString() {  return getClass().getName() + "@" + Integer.toHexString(hashCode());  //默认打印的是地址}

如果不想打印地址,那么就在相应的子类里面重写子类

public class Student { private String name; public Student(String name) {  this.name = name; } @Override public String toString() {  return "Student{" +    "name='" + name + '\'' +    '}'; }}
public class TestStudent { public static void main(String[] args) {  Student student=new Student("张三");  System.out.println(student); }}

没有重写toString方法时,默认打印的是地址


重写toString方法时,打印的是里面的内容

2.equals方法

本质

调用(如果是基本数据类型,则比较内容,不是则默认比较地址,例如bject的equals源码如下:)

 public boolean equals(Object obj) {  return (this == obj);}

但String类(final数组)中的equals方法是重写了Object的equals方法,比较是其中每个字符的内容

 public boolean equals(Object anObject) {  if (this == anObject) {   return true;  }  if (anObject instanceof String) {   String anotherString = (String)anObject;   int n = value.length;   if (n == anotherString.value.length) {    char v1[] = value;    char v2[] = anotherString.value;    int i = 0;    while (n-- != 0) {     if (v1[i] != v2[i])      return false;     i++;    }    return true;   }  }  return false; }

3.clone方法(浅拷贝---只会拷贝引用地址)

用途:使一个新对象中有已经建立对象的数据内容(克隆)

在object类中,clone方法的访问权限是protectd

 protected native Object clone() throws CloneNotSupportedException;

子类要想调用clone方法,必须要有以下步骤

1.extends Object

2.且实现Cloneable接口

3.重写(override)clone方法(Alt+Enter快捷键)

4.调用处处理重写clone方法的throws抛出的CloneNotSupportedException异常

public class Student extends Object implements Cloneable{ private String name; public Student(String name) {  this.name = name; } @Override public String toString() {  return "Student{" +    "name='" + name + '\'' +    '}'; } @Override protected Object clone() throws CloneNotSupportedException {  return super.clone(); }}
public class TestStudent { public static void main(String[] args) {  Student student=new Student("张三");  System.out.println("student学生的信息为: "+student);  //try...catch用来接收调用clone()方法时,通过throws抛过来的异常  try {    Student student1=(Student) student.clone();//想把student对象里面的信息赋值给student1   System.out.println("student1学生的信息为: "+student1);  } catch (CloneNotSupportedException e) {   e.printStackTrace();//打印异常处理的信息  } finally {  } }}








原文转载:http://www.shaoqun.com/a/494493.html

mav:https://www.ikjzd.com/w/2414

outfit:https://www.ikjzd.com/w/938

黄劲:https://www.ikjzd.com/w/2426


28Object类含义任何类的直接父类或间接父类常用操作(被子类重写的方法)1.toString方法对于引用数据类型,打印变量名的时候自动调用toString方法,默认打印的是地址,publicStringtoString(){returngetClass().getName()+"@"+Integer.toHexString(hashCode());//默认打印的是地址}如果
cima是什么:cima是什么
c88:c88
惠州叶挺纪念馆怎么样?是全国红色旅游经典景区之一吗?:惠州叶挺纪念馆怎么样?是全国红色旅游经典景区之一吗?
广东开始转晴气温30℃以上 未来高温天气需防晒降温:广东开始转晴气温30℃以上 未来高温天气需防晒降温
天目湖门票_溧阳天目湖山水园|南山竹海|御水温泉门票价格 :天目湖门票_溧阳天目湖山水园|南山竹海|御水温泉门票价格

No comments:

Post a Comment