API:应用程序接口-提供了接口以及接口下的类
Api文档:通过javadoc命令对文档注释内容进行抽取到抽取到一个文档中
Object:Object是所有类的顶级父类,它本身没有父类默认所有类继承Object类
重要方法:
1.clone()–把原对象的属性进行拷贝放到
新的对象中,然后把新的对象进行返回
实现Cloneable才能执行克隆操作:见代码
public class ObjectDemoL extends Object implements Cloneable {
int i=10;
public static void main(String[] args) throws CloneNotSupportedException {
//创建对象
ObjectDemoL od=new ObjectDemoL();
od.clone();
//调用方法,父类转子类。od.clone()为Object类型
//cloneNotSupportedException--克隆不支持异常,Cloneable
//就是标记,实现它可以支持克隆
//od2就是克隆对象--把原堆得信息拷贝到新的堆内存
ObjectDemoL od2=(ObjectDemoL)od.clone();
System.out.println(od2.i);
System.out.println(od==od2);
//protected修饰的方法,(不同包继承子类对象只能在子类本类使用)!!!要记住
// ODemo ode=new ODemo();
}
}
//
class ODemo implements Cloneable{
}
2.finalize()–通知gc进行垃圾回收与System.gc()一致;
3.getclass()–得到的是实际创建类的类型
4.hashcode()–返回的是哈希吗值–分布范围广且散列分布–可以唯一不同的表示地址值
5.toString()//默认调用的是Object(),返回对象的地址值,也可以自行重写。 println()在底层默认调用对象的toString()//Object的toString()默认是地址值的拼接。
6.equals(Object obj)
1.对于字符串变量来说,使用等号和equals()方法比较字符串时,其比较方法不同。等号比较两个变量本身的值,即两个对象在内存中的首地址。 “equals()”比较字符串中所包含的内容是否相同。
2.对于非字符串变量来说,等于和"equals"方法的作用是相同的都是用来比较其对象在堆内存的首地址,即用来比较两个引用变量是否指向同一个对象总结:equals方法对于字符串来说是比较内容的,而对于非字符串来说是比较其指向的对象是否相同的。== 比较符也是比较指向的对象是否相同的也就是对象在对内存中的的首地址。
****equals()–默认是调用Object方法,默认是比较对象地址值是否相等,–重写equals()方法1.判断地址值是否相等2.判断参数是否为null3.判断对象是否为同一类型4.判断属性(引用类型) 能够手写,熟练运用
public class ObjectText {
}
//
class Student{
//
String name;
int age;
String nu;
@Override
public boolean equals(Object obj) {
//
if(this==obj){
return true;
}
//
if(obj==null){
return false;
}
if(this.getClass()!=obj.getClass()){
return false;
}
Student s=(Student)obj;
//
if(this.age!=s.age){
return false;
}
if(!(this.name==s.name||this.name!=null&&this.name.equals(s.name))){
return false;
}
if(this.nu==s.nu||this.nu!=null&&this.nu.equals(s.nu)){
return true;
}
return false;
}
}