java_object的简单使用详解

作者:jingxian 时间:2023-08-22 11:35:57 

就我们所知道的,java中有子类和父类,子类由于继承父类而形成,那么父类还有没有父类呢?答案是有了,父类的父类就是object类,一切父类都继承了它,那么根据继承的属性,每一个子类都有一个object类,然而,我们不是蒙目地去继承它,继承它是有目的的,我们要使用里面定义的方法,object里面定义了很多方法,详情参考API帮助文档,下面我介绍object里面两种方法,继承而来的方法往往是需要我们重写的。

第一、比如里面的比较方法,用来比较两个对象的地址是否相等,实际比较地址是哈希地址,而这开发中是往往用不到的,我们更多的用到的是比较对象里面的内容,比如数据成员是否相同,由于是继承了object,我们可以将它重写,把原定object的方法覆盖掉,一般都这样做,下面,看具体代码。其中还涉及到向上转型,向下转型的知识,具体看我以前的播客。还有tostring()方法是返回类名+哈希值


/*
Object:是所有对象的直接后者间接父类,传说中的上帝。
该类中定义的肯定是所有对象都具备的功能。

Object类中已经提供了对对象是否相同的比较方法。

如果自定义类中也有比较相同的功能,没有必要重新定义。
只要沿袭父类中的功能,建立自己特有比较内容即可。这就是覆盖。
*/

class Demo //extends Object
{
 private int num;
 Demo(int num)
 {
   this.num = num;
 }

public boolean equals(Object obj)//Object obj = new Demo();
 {

if(!(obj instanceof Demo))
     return false;
   Demo d = (Demo)obj;

return this.num == d.num;
 }

/*
 public boolean compare(Demo d)
 {
   return this.num==d.num;
 }
 */
 public String toString()
 {
   return "demo:"+num;
 }

}
class Person
{
}

class ObjectDemo
{
 public static void main(String[] args)
 {
   Demo d1 = new Demo(4);
   System.out.println(d1);//输出语句打印对象时,会自动调用对象的toString方法。打印对象的字符串表现形式。
   Demo d2 = new Demo(7);
   System.out.println(d2.toString());
   //Demo d2 = new Demo(5);
   //Class c = d1.getClass();
//
//    System.out.println(c.getName());
//    System.out.println(c.getName()+"@@"+Integer.toHexString(d1.hashCode()));
//    System.out.println(d1.toString());
   //Person p = new Person();
   ///System.out.println(d1.equals(p));

}
}

标签:java,object
0
投稿

猜你喜欢

  • 关于Springboot+gateway整合依赖并处理依赖冲突问题

    2023-10-23 21:13:56
  • c# AJAX实践VS2005 + RSSToolKit 开发你自己的RSS在线阅读器

    2023-11-30 18:22:11
  • spring的jdbctemplate的crud的基类dao

    2022-05-30 13:05:17
  • Spring Boot整合Swagger测试api构建全纪录

    2022-10-21 09:05:25
  • Java利用读写的方式实现音频播放代码实例

    2022-08-21 15:38:52
  • C#下载歌词文件的同步和异步方法

    2023-04-11 22:46:49
  • Android开发使用Drawable绘制圆角与圆形图案功能示例

    2023-08-26 21:07:09
  • C/C++ Qt StatusBar底部状态栏应用教程

    2023-09-29 16:25:45
  • springboot集成Swagger的方法(让你拥有属于自己的api管理器)

    2023-11-08 20:39:15
  • Java中的ArrayList容量及扩容方式

    2023-10-17 17:24:40
  • SpringBoot集成Redisson实现分布式锁的方法示例

    2021-10-30 16:59:38
  • Java加载property文件配置过程解析

    2023-10-07 07:53:03
  • C# KeyUp事件中MessageBox的回车(Enter)键回调问题解决方案

    2021-06-25 06:24:06
  • Java8 如何正确高效的使用并行流

    2021-06-01 20:29:19
  • OpenCV + MFC实现简单人脸识别

    2023-02-24 06:15:55
  • 优化常见的java排序算法

    2022-03-25 05:11:54
  • C#串口通信模块使用方法示例

    2023-06-19 12:13:57
  • RestTemplate 401 获取错误信息的处理方案

    2023-01-14 10:37:44
  • activemq整合springboot使用方法(个人微信小程序用)

    2023-07-08 22:29:55
  • Java中判断对象是否为空的方法的详解

    2022-01-09 07:41:14
  • asp之家 软件编程 m.aspxhome.com