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