【第十七章】Object类的基本概念
一.Object 的基本概念:
Object类的主要特点是可以解决参数的统一问题,也就是说使用Object类可以接收所有的数据类型。
Object类简介:
在Java中只有一个类是不存在有继承关系的,那么这个类就是Object,也就是说所有的类默认情况下都是Object类的子类
以下俩种类的定义效果完全相同。
class Person {} class Person extends Object {}
在Object类设计的时候考虑到了所有继承的问题,所以该类提供有无参数构造方法(子类调用默认调用父类的无参构造方法)。
那么既然Object类是所有类的父类,那么这种情况下就可以使用Object类来接收所有子类对象。
如果一个程序的方法要求可以接受所有类对象的时候就可以利用Object实现处理。
但是还有一点需要注意,在Java程序制作对于所有的引用数据类型实际上都可以利用Object进行接收,包括数组也可以。
范例:使用Object类接收数组:
class Person{} public class tsy { public static void main(String[] args) { Object obj = new int [] {1,2,3}; //向上转型 if(obj instanceof int[]){ int date[] = (int[])obj; for (int temp:date){ System.out.println(temp); } } } }
Object是一个万能的数据类型,更适合于进行程序的标准设计。
二.取得对象信息(toString()):
Object虽然是一个类,但是这个类本身也是提供有一些处理方法的。
Object中的toString可以获取一个对象的完整信息:
class Person{} public class tsy { public static void main(String[] args) { Person per = new Person(); System.out.println(per); System.out.println(per.toString()); } } //输出Person@2a84aee7 //输出Person@2a84aee7
可以发现在之前进行对象直接输出的时候所调用的就是toString()方法,所以这个方法调用和不调用是一样的
所以在以后的开发之中对象信息的获得可以直接覆写此方法
范例:覆写toString:
class Person{ private String name; private int age; public Person(String name , int age){ this.name = name; this.age = age; } public String toString(){ return"姓名:"+this.name+"、年龄:"+this.age; } } public class tsy { public static void main(String[] args) { Person per = new Person("同思远",19); System.out.println(per); System.out.println(per.toString()); } } //输出姓名:同思远、年龄:19 //输出姓名:同思远、年龄:19