【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

浙公网安备 33010602011771号