Java 常用API
什么是API?
- API:应用程序编程接口
- 简单来说:就是java帮我们已经写好的一些方法,我们直接拿过来用就可以了。
Object类的作用
- 一个类要么默认继承了Object类,要么简介继承了object类,object类是java中的祖宗类。
- object类的方法是一切子类都可以直接使用的,所以我们要学习object类的方法。
object类的常用方法:
方法名 | 说明 |
---|---|
public String toString() | 默认时返回当前对象在堆内存中的地址信息:类的全限名@内存地址 |
public Boolean equals(Object o) | 默认是比较当前对象与另一个对象的地址是否相同,相同则返回true,否则返回false |
toString()
问题引出:
- 开发中直接输出对象,默认输出对象的地址其实是毫无意义的
- 开发中输出对象变量更多的时候是希望看到对象的内容数据而不是对象的地址信息。
toString存在的意义:
- 父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息!!
总结
- object的toString方法的作用是什么?
- 默认是打印当前对象的地址。
- 让子类重写,以便返回子类对象的内容
使用实例:
public class Student {
private String name;
private char sex;
private int age;
public Student() {
}
public Student(String name, char sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString(){
return "Student: {\"name\":" + name +
" \"sex\":" + sex +
" \"age\":" + age + "}";
}
}
/**
* 目标:学习掌握java的一些常用API
* */
public class Test {
public static void main(String[] args) {
//创建学生类对象
Student s = new Student("Jack", '男', 19);
Student s1 = new Student("Tom", '男', 18);
System.out.println(s.toString());
System.out.println(s.equals(s1));
}
}
equals()
object的equals()方法:
问题思考
- 直接比较两个对象的地址是否相同完全可以用“==”替代equals.
equals存在的意义:
- 父类equals)方法存在的意义就是为了被子类重写,以便比较子类内容是否相同!!
Objects
Objects概述:
- Objects类与Object还是继承关系,Objects类是从JDK1.7开始之后才有的。
官方在进行字符串比较时,没有用对象自己的equals方法,而是选择了objects的equals方法来比较两个对象。
@override
public boolean equals(Object o){
//1.判断是否是同一个对象比较,如果是返回true
if(this == o) return true;
//2.如果o是null返回false,如果o不是学生类返回false
if(o == null || this.getClass() != o.getClass()) return false;
//3.说明o一定是学生类而且不为null
Student student = (Student) o;
return sex == student.sex && age == student.age && Objects.equals(name, student.name);
}
Objects的equals方法比较的结果是一样的,但是更安全。
Object的常见方法:
源码分析:
public static boolean equals(Object a, Object b){
return (a == b) || (a != null && a.equals(b));
}
使用实例:
import java.util.Objects;
/**
* 目标:掌握Objects的equals方法
* */
public class Test {
public static void main(String[] args) {
String s1 = "king";
String s2 = "king";
String s3 = null;
//System.out.println(s1.equals(s2)); //留下空指针异常隐患
System.out.println(Objects.equals(s1, s3));
System.out.println(Objects.equals(s1, s2));
System.out.println(Objects.isNull(s3));
}
}