本章目标
掌握Object类的作用
掌握Object类中toString()、equals()方法的作用
掌握Object接收引用数据类型的操作
Object类
在Java中所有的类都有一个公共的父类就是Object类,一个类只要没有明显的继承一个类,则肯定是Object类的子类。如下两种代码表示的含义都是一样的:
——class Person extends Object{}
——class Person{}
Object类中的主要方法
toString()方法
在直接输出对象的时候会默认调用类中的toString()方法
class Demo{//定义 Demo 类,实际上继承 Object 类 } public class ObjectDemo01 { public static void main(String[] args) { Demo d = new Demo();//实例化 Demo 对象 System.out.println("不加 toString() 输出:"+d); System.out.println("加上 toString() 输出:"+d.toString()); } /*结果: * 不加 toString() 输出:J020611.ObjectDemo01.Demo@7150bd4d * 加上 toString() 输出:J020611.ObjectDemo01.Demo@7150bd4d * */ }
应用toString()方法取得对象内容
class Person{//定义 Person 类 private String name;//定义 name 属性 private int age;//定义 age 属性 public Person(String name, int age){//通过构造设置属性内容 this.name = name; this.age = age; } public String toString(){//此处覆写 toString() 方法 return "姓名:"+this.name+"; 年龄:"+this.age; } } public class ObjectDemo02 { public static void main(String[] args) { Person per = new Person("chaoyi",30);//实例化 Person 对象 System.out.println("对象信息:"+per);//打印对象调用 toString()方法 //相当于 System.out.println("对象信息:"+per.toString()); } /*结果: * 对象信息:姓名:chaoyi; 年龄:30 * */ }
equals()方法
equals()方法的主要功能是进行对象的比较操作。
String本身也是Object类的子类,所以已经覆写了此方法
对象的比较操作
class Person{//定义 Person 类 private String name;//定义 name 属性 private int age;//定义 age 属性 public Person(String name, int age){//通过构造设置属性内容 this.name = name;//为 name 属性赋值 this.age = age;//为 age 属性赋值 } public boolean equals(Object obj){//覆写 Object 类中的 equals() 方法 if(this == obj){//如果两个对象的地址相等,则肯定是同一个对象 return true; } if(!(obj instanceof Person)){//判断传进来的对象是否是 Person 的实例 return false;//如果不是,则直接返回 false } Person per = (Person)obj;//将传进来的对象向下转型 if(per.name.equals(this.name) &&per.age == this.age){//逐个属性比较,看是否相等 return true;//对象内容相等 }else{ return false;//对象内容不等 } } public String toString(){//此处覆写 toString() 方法 return "姓名:"+this.name+"; 年龄:"+this.age; } } public class ObjectDemo03 { public static void main(String[] args) { Person per1 = new Person("chaoyi",30); Person per2 = new Person("chaoyi",30); System.out.println(per1.equals(per2)?"是同一个人!":"不是同一个人!"); System.out.println(per1.equals("Hello")?"是同一个人!":"不是同一个人!"); } /*结果: * 是同一个人! * 不是同一个人! * */ }
接收任意引用类型的对象
既然Object类是所有对象的父类,则肯定所有的对象都可以向Object进行转换,在这其中也包含了数组和接口类型,即:一切的引用数据类型都可以使用Object进行接收。
使用Object接收接口实例
interface A{//定义接口 A public String getInfo();//定义抽象方法 } class B implements A{//子类实现接口 public String getInfo(){//覆写接口中的抽象方法 return "Hello World!!!"; } } public class ObjectDemo04 { public static void main(String[] args) { A a = new B();//为接口实例化 Object obj =a;//对象向上转型 A x =(A)obj;//对象向下转型 System.out.println(x.getInfo()); } /*结果: * Hello World!!! * */ }
使用Object接收数组
public class ObjectDemo05 { public static void main(String[] args) { int temp[] = {1,3,5,7,9};//定义数组 Object obj = temp;//使用 Object 接收数组 print(obj);//传递数组引用 } public static void print(Object o){//接收一个对象 if(o instanceof int[]){//判断对象的类型 int x[] = (int[])o;//向下转型 for(int i=0; i<x.length; i++){//循环输出 System.out.print(x[i] +"、"); } } } /*结果: * 1、3、5、7、9、 * */ }
相关推荐
Object类和Scanner类
day01【Object类、常用API】-笔记.md
1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1.javaObject类.zip1....
==与equals的比较,包装类的使用
这个源码资源是关于Java中的Object类的讲解案例代码。Object类是所有Java类的根类,它定义了一些常用的方法,例如equals()、hashCode()、toString()等。本案例代码将详细展示Object类的使用方法,并提供一些实际场景...
【Object-C】C++对象库,实现类似于Java的Object类的Object, (a C++ Object library, implementating an Object similar to Java s Object class,) 文件列表: CMakeLists.txt (1300, 2023-10-16) LibObjClangPlugin...
java-object类java-object类java-object类java-object类java-object类java-object类java-object类java-object类java-object类java-object类
Java 对Object类的认识和equals()方法和== 的对比
Object类和object类中方法的总结 及常见面试易混易错点
题目1:选课系统的组件图设计 ...FormObject类和ControlObject类都和Course类相关,FormObject类和ControlObject类依赖Course类,ControlObject类和DataBase类相关,ControlObject类依赖DataBase类。
qt最重要的类, object类的源码分析,相当实用, 相当有参考价值
Object类&Date类&Calender类&StringBuilder类1
Object类,日期时间类,System类, StringBuilder类,包装类
Object类 getClass 马克-to-win java视频 的详细描述介绍
day12_Object类、常用API.pdf
Java面向对象(进阶)-- Object类的详细概述
提供了20道高难度的Java Object类面试题及详细答案解析,涵盖了equals()、hashCode()、toString()、clone()、finalize()等方法的重写和应用,以及对象的比较、克隆、标识哈希码等概念。适合准备Java面试的开发者深入...
详解Java中Object 类的使用.rar
day01【Object类、常用API】
Object类 finalize 马克-to-win java视频的详细描述