Java基础知识-根父类Object

206 篇文章 0 订阅
172 篇文章 0 订阅

小编带领大家介绍Java中继承的基本概念,在Java中,所有类都有一个父类Object,我们先来看这个类,然后主要通过图形处理中的一些简单例子来介绍继承的基本概念。

根父类Object

在Java中,即使没有声明父类,也有一个隐含的父类,这个父类叫Object。Object没有定义属性,但定义了一些方法。

类Object中的方法

本节我们会介绍toString()方法,其他方法我们会在后续章节中逐步介绍。toString()方法目的是返回一个对象的文本描述,这个方法可以直接被所有类使用。

比如,对于我们上一章介绍的Point类,可以这样使用toString方法:

Point p = new Point(2,3);
System.out.println(p.toString());

输出类似这样:

Point@76f9aa66

这是什么意思呢?@之前是类名,@之后的内容是什么呢?我们来看下toString()方法的代码:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

getClass().getName()返回当前对象的类名,hashCode()返回一个对象的哈希值,哈希我们会在后续章节进一步介绍,这里可以理解为是一个整数,这个整数默认情况下,通常是对象的内存地址值,Integer.toHexString(hashCode())返回这个哈希值的十六进制表示。

为什么要这么写呢?写类名是可以理解的,表示对象的类型,而写哈希值则是不得已的,因为Object类并不知道具体对象的属性,不知道怎么用文本描述,但又需要区分不同对象,只能是写一个哈希值。

但子类是知道自己的属性的,子类可以重写父类的方法,以反映自己的不同实现。所谓重写,就是定义和父类一样的方法,并重新实现方法重写

上一章,我们介绍了一些图形处理类,其中有Point类,这次我们重写其toString()方法。

Point类:重写toString()方法

public class Point {
    private int x;
    private int y;
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public double distance(Point point){
        return Math.sqrt(Math.pow(this.x-point.getX(),2)
                +Math.pow(this.y-point.getY(), 2));
    }
    public int getX() {
        return x;
    }
    public int getY() {
        return y;
    }
    @Override
    public String toString() {
        return "("+x+","+y+")";
    }
}

toString()方法前面有一个@Override,这表示toString()这个方法是重写的父类的方法,重写后的方法返回Point的x和y坐标的值。重写后,将调用子类的实现。比如,如下代码的输出就变成了(2,3)。

Point p = new Point(2,3);

System.out.println(p.toString());

在这里小编给大家分享一个Java入门的视频教程,适合零基础想要入门的小伙伴,有经验的程序员也可以加以巩固。

为初学者而著!

适合零基础的小伙伴们学习Java。

感兴趣的小伙伴可以点视频链接和小编一起学习,共同进步!

https://www.bilibili.com/video/BV17g411h7Z6/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421cicon-default.png?t=M85Bhttps://www.bilibili.com/video/BV17g411h7Z6/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值