【JAVA笔记】JAVA中的常用工具API简介、Object类的特点、JavaBean类重写Object类中的方法06
一、Java常用工具API简介
根据步骤查找API文档使用对应功能
API网址:https://www.apiref.com/java11-zh/index.html
什么是API?
二、Object类的特点
1.java.lang包下的类可以直接使用,不需要导包
2.一个类只有一个字节码文件
3.toString返回该对象的字符串表示形式,默认打印的是地址值,但是不同对象的地址值肯定不同。
4.地址值的组成:全类名+@+该对象的哈希码的无符号十六进制形式
实例:
package cn.test02.demo3; public class Demo { public static void main(String[] args) { //非静态方法的调用方式:通过对象名.的形式调用 //1.创建Object对象 //int hashCode(); Object obj1 = new Object(); Object obj2 = new Object(); //2、调用Object对象方法 int code1 = obj1.hashCode(); int code2 = obj2.hashCode(); System.out.println("obj1的hashCode值:" + code1); System.out.println("obj2的hashCode值:" + code2); System.out.println("---------------------------------------"); //Class<?>getClass():返回该调用者的字节码文件对象 Class clazz1 = obj1.getClass(); Class clazz2 = obj2.getClass(); System.out.println(clazz1); System.out.println(clazz2); //String toString(); String s1 = obj1.toString(); String s2 = obj2.toString(); System.out.println(s1); System.out.println(s2); //boolean equals(); 比较两个对象是否相同,默认比较的是地址,无意义,子类一般都会重写这个方法 boolean b1 = obj1.equals(obj2); System.out.println(b1); } }
运行结果:
三、JavaBean类重写Object类中的方法
我们时常要用到object类,但是他本身的toString方法和equals方法并不是我们所需要的话,这时候就要用到JavaBean类来重写Object类中的方法:
这里在java的编译工具idea里面十分容易,只要alt加insert或者鼠标右键,然后选中Generate,然后在里面寻找你要重写的方法名即可,接下来将给出Student类重写Object奇中类并在Test类中测试的代码:
首先是Student类的代码
实例:
Student.java
package cn.test02.demo4; public class Student { private int id; private String name; private int score; public Student() { } // 构造方法 public Student(int id, String name, int score) { this.id = id; this.name = name; this.score = score; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", score=" + score + '}'; } // 通过快捷键(右键-Generate)的方式重写equals @Override public boolean equals(Object o) { //this表示s1 o在这里表示传进来的s2 //比较两个对象的地址值是否相同 若相同说明是一个对象不需要再比较了 提高效率 if (this == o) return true; //判断要比较的两个对象是否是同一类型的 比如你不能拿学生和护士比较 提高了代码的健壮性 if (o == null || this.getClass() != o.getClass()) return false; //向下转型,使父类可以用子类德 相关属性 Student student = (Student) o; return id == student.id && score == student.score && //这里调用的是String里面自带的equals方法 name.equals(student.name); } }
接下来是Test.java
package cn.test02.demo4; public class Test { public static void main(String[] args) { //测试toString方法 Student student1 = new Student(1, "s1", 66); System.out.println(student1); //输出语句直接打印对象,相当于调用了对象的toString方法 System.out.println(student1.toString()); Student student2 = new Student(2, "s1", 66); boolean a = student1.equals(student2); System.out.println(a); } }
id值不一致,很容易看出是false
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/16977427.html