Object类的概述(重点)
基本概念
java.lang.Object类是Java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间
接子类。
如果定义一个Java类时没有使用extends关键字声明其父类,则其父类为 java.lang.Object 类。
Object类定义了“对象”的基本行为, 被子类默认继承。
常用的方法
案例题目:
编程实现Student类的封装,特征:学号(id)和姓名,要求提供打印所有特征的方法。
编程实现StudentTest类,在main方法中使用有参方式构造两个Student类型的对象并打印特征。
packagecom.lagou.task11;public class Student extendsObject {private int id; //用于描述学号的成员变量
private String name; //用于描述姓名的成员变量
publicStudent() {
}public Student(intid, String name) {
setId(id);
setName(name);
}public intgetId() {returnid;
}public void setId(intid) {if(id > 0) {this.id =id;
}else{
System.out.println("学号不合理哦!");
}
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}
}
packagecom.lagou.task11;public classStudentTest {public static voidmain(String[] args) {//1.使用有参方式构造Student类型的两个对象并判断是否相等
Student s1 = new Student(01,"张飞");
Student s2= new Student(02,"刘备");//下面调用从Object类中继承下来的equals方法,该方法默认比较两个对象的地址
Boolean b1 =s1.equals(s2);
System.out.println("b1 = " +b1);System.out.println(s2 == s1);
} }
如下图S1和S2指向不同的堆区地址,所以使用equals方法比较得到的结果是false
equals方法和==比较的结果是一样的,所以得到的结果是false
如果S2和S1都指向同一个对象,地址就相同了,得到的结果是true
题目扩展