网站首页 > 基础教程 正文
Object类概述
Object是类层次结构的根,每个类都可以将Object作为超类,所有类都直接或者间接的继承自该类。
构造方法:public Object()
面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
因为它们的顶级父类只有无参构造方法
常用方法:
?
toString方法
public String toString()
返回对象的字符串表示形式,一般来说,toString方法返回一个代表这个对象的字符串,建议所有子类重写此方法
public class Student {
String name;
int age;
//重写toString方法
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
equals方法
需求:比较两个对象是否相同:
public class ObjectDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("xiaoming");
s1.setAge(23);
?
Student s2 = new Student();
s2.setName("xiaoming");
s2.setAge(23);
//false 这里比较的是两个对象的内存地址,不相同
System.out.println(s1==s2);
//还是false
System.out.println(s1.equals(s2));
/*原因:
this---s1
obj ---s2
public boolean equals(Object obj) {
return (this == obj);
}
引用类型默认比较地址值,需要重写该方法
*/
}
}
Student类重写equals方法:
@Override
public boolean equals(Object o) {
//地址值是否相同
if (this == o) return true;
//参数是否为null,getClass()获取所属类,判断两个对象是否来自同一个类
if (o == null || getClass() != o.getClass()) return false;
//向下转型
Student student = (Student) o;
?
if (age != student.age) return false;
return name != null ? name.equals(student.name) : student.name == null;
}
?
猜你喜欢
- 2024-11-13 Java:Java多线程接口和类 java多线程三种实现方法
- 2024-11-13 jdk源码学习(一):万物皆对象,解密java中所有对象的父类Object
- 2024-11-13 Java类和对象的概念 java类和对象的概念区别
- 2024-11-13 Java开发中常用的框架有哪些? java开发主流框架
- 2024-11-13 Java引用数据类型 Java引用数据类型是什么意思
- 2024-11-13 c#入门教程(二十七)object类型 c# object reference not set
- 2024-11-13 70分享(4):关于Java中的类 java常用的类和方法
- 2024-11-13 从JVM层面带你分析Java的Object类源码第二部分
- 2024-11-13 JAVA你可能不知道的事——继承&抽象类
- 2024-11-13 Java,Objects,常用操作,判空、equals、compare、hash等的使用
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)