关键词搜索

源码搜索 ×
×

(Java)Object 类

发布2020-01-14浏览451次

详情内容

一、基本作用

在 Java 中所有的类都有一个公共的父类 Object,一个类只要没有明显的继承一个类,则肯定是 Object 的子类。

//这两行代码表示的含义是一样的
class Person extends Object{}
class Person{}

    Object 类中的主要方法
    在这里插入图片描述

    二、主要方法

    1. toString()
    class Demo{}//定义 Demo 类,实际上继承 Object 类
    
    public class Test{
        public static void main(String[] args) {
            Demo d = new Demo();//实例化 Demo 对象
            System.out.println("不加toString()输出:" + d);
            System.out.println("加toString()输出:" + d.toString());
        }
    }
    
      4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    程序随机输出了一些地址信息,加不加 toString() 最终的输出结果都是一样的,对象输出时会自动调用 Object 类中的 toString() 方法打印内容,所以利用此特性可以通过 toString() 可以取得一些对象的信息。
    字符串内容就是对象的类型+@+内存地址值

    1. equals()
      Object 类中的 equals() 方法实际上也是可以使用的,但是其默认使用的是按地址进行比较的,并不能对内容进行比较

    三、接收任意引用类型的对象

    既然 Object 类是所有对象的父类,则所有的对象都可以向 Object 进行转换,在这其中也包含了数组和接口类型,即一切的引用数据类型都可以使用 Object 进行接收。

    interface A{//定义接口 A
        public String getInfo();//定义抽象方法
    }
    
    class B implements A{
        public String getInfo(){
            //覆写接口中的抽象方法
            return "Hello World!!!";
        }
    }
    
    public class Test{
        public static void main(String[] args) {
            A a = new B();//为接口实例化
            Object obj = a;//对象向上转型
            A x = (A)obj;//对象向下转型
            System.out.println(x.getInfo());
        }
    }
    
      4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    虽然接口不能继承一个类,但是依然是 Object 类的子类,因为接口本身是引用数据类型,所以可以进行向上转型操作。

    同理也可以使用 Object 接收一个数组,因为数组本身也是引用类型。

    public class Test{
        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.println(x[i] + "\t");
                }
            }
        }
    }
    
      4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    以上程序使用 Object 接收一个整型数组,因为数组本身属于引用数据类型,所以可以使用 Object 接收数组内容,输出时通过 instanceof 判断是否是一个整型数组,然后进行输出操作。

    因为 Object 类可以接收任意的引用数据类型,所以在很多的类库设计上都采用 Object 作为方法的参数,这样操作会比较方便

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载