目录
JavaAPI概述
API:(Application Programming Interface)应用程序编程接口
java系统中提供的一系列类和接口。
API文档:官方给广大java开发者学习者提供对类和接口功能的说明文档。
Object类:
toString方法:
示例代码:
package toString;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
/* 默认继承Object类
Object类中的toString()默认输出的是类的名字和对象在内存中的地址,但是我们创建的Person类
默认继承Object类,所以我们可以对toString方法进行方法重写。
源代码:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
*/
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package toString;
public class ToStringDemo {
public static void main(String[] args) {
Person person = new Person("张三", 19);
System.out.println(person);
/* 当输出一个对象时,会默认调用类中toString()方法,把对象以字符串的
形式输出,类中如果没有toString(),那么会调用父类(Object)中的toString();
public String toString(){
Object类中的默认输出类的名字和对象在内存中的地址(10进制转16进制)
return getClass().getName()+"@"+Interge.toHexString(hashCode());
}*/
}
}
当输出一个对象时,会默认调用类中的toString()方法,把对象以字符串的形式输出,如果类中没有toString类,那么就会调用父类(Object)中的toString(),但是Object类中的默认输出的是类的名字和对象在内存中的地址,如果想要输出对象的内容我们就需要对toString()方法进行重写。
equals方法:
package equals;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object obj) {
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
}
package equals;
public class EqulasDemo {
public static void main(String[] args){
Person person1=new Person("张三",19);
Person person2=new Person("张三",19);
System.out.println(person1.equals(person2));//false
System.out.println(person1==person2); //false
/* 此处虽然两个对象的内容相等,但输出结果均为false
public boolean equals(Object obj) {
return (this == obj);
}
观察这段源代码
== 用于基本数据类型比较时,比较的是值是否相等
用于引用数据类型比较时,比较的是两个引用的地址是否相等。
所以输出结果均为false*/
int a=10;
int b=10;
System.out.println(a==b); //true
//这样调用equals()方法,与直接使用==就没有区别了。
/* 解决方案:
为了比较两个对象的内容是否相等,需要对Object中的equals()方法进行重写。*/
String p1=new String("张三");
String p2=new String("张三");
System.out.println(p1.equals(p2));//此处的输出结果为true,因为toString对equals()方法进行了重写,可以实现创建对象的内容比较。
System.out.println(p1==p2);//此处输出结果为false
Person p3=new Person("张三",19);
Person p4=new Person("张三",19);
System.out.println(p3.equals(p4));//此处输出结果为true,因为Person类对equals()方法进行重写,实现了创建对象内容的比较。
}
}
Object类中的equlas()方法比较的是两个对象的地址是否相同,与"=="的作用一样。
== 用于基本数据类型比较时,比较的是值是否相等
用于引用数据类型比较时,比较的是两个引用的地址是否相等。
解决方法:equals()方法进行重写。