API
Application Programing Interfaces 应用程序接口
程序员说明书,利用程序生成的注释集合。学会使用API。
提供一系列的接口与接口下的类。
Object class
1.所有类的父类,根类。
2.由于Java是单继承和多重继承的集合,因此object可以认为是第一个类。即所有类的父类。本身没有父类。
3.我们创建的所有的类,会在底层默认继承了Object类。
4.属性和方法
作为所有类的父类,子类的对象可以调用父类的方法和属性。
API中没有写明修饰符的方法名称,默认为public类型。
5.object的地位使得所有的类都可以进行向上造型。
6.clone()方法
//CloneNotSupportedException克隆不支持异常
//解决该异常的方法 该类实现一个接口 Cloneable该接口仅仅作为一个标志来完成的
使用克隆方法克隆的对象的值和方法都一样。
public class ObjectDemo implements Cloneable{
int i=6;
String s = ",ppp";
public static void main(String[] args) throws CloneNotSupportedException {
ObjectDemo o1 = new ObjectDemo();
System.out.println(o1.i+o1.s);
Object o2 = o1.clone();
System.out.println(o2);
ObjectDemo o3 = (ObjectDemo) o1.clone();
System.out.println(o3.i+o3.s);
}
}
7.finalize()方法——单词含义通知,返回object实际创建类的类型即全路径。
通知系统进行回收,因为数据在内存中是根据一定的时间间隔来作为垃圾回收的,本方法打破了这个限制
即通知计算机直接进行垃圾的回收。
try {
o1.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
8.getClass()方法,获取一个类,返回一个object运行时的一个类。即new后面的类的路径。
public class ObjectDemo2 {
public static void main(String[] args) {
ObjectDemo2 o = new ObjectDemo2();
Object o2 = new ObjectDemo2();
System.out.println(o);
System.out.println(o2);
System.out.println(o.getClass());
System.out.println(o2.getClass());
}
}
9.hashCode()
返回对象的哈希码值
返回对象的哈希码值不一样
哈希码值的取值范围广,和int无符号一样大【0,2^32-1】
哈希码值散列分布,可以实现均匀分布。
效果——范围广,几乎不会发生重复的事件。
哈希码值一定唯一,对象的地址值唯一,哈希码值可以代表对象地址值。
对象地址值是10进制的哈希码值转换为16进制的地址值。
ObjectDemo2 s = new ObjectDemo2();
System.out.println(s);
System.out.println(s.hashCode());
System.out.println(Integer.toHexString(s.hashCode()));
10.toString 返回对象的拼接地址值。
一般重写该方法,返回每个对象的属性值
public static void main(String[] args) {
ObjectDemo3 o = new ObjectDemo3();
System.out.println(o);
String s = o.toString();
System.out.println(s);
}
11.equals()方法 是否有对象等于该对象,盘对对象是否相等,即地址是否一样。
该方法一般重写进行使用。
public static void main(String[] args) {
PersonDemos p1 = new PersonDemos();
PersonDemos p2 = new PersonDemos();
System.out.println(p1.equals(p1));
System.out.println(p1.equals(p2));
PersonDemos p3 = p1;
System.out.println(p1.equals(p3));
}
}
class PersonDemos{
String name;
int age;
char gender;
}