博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Class Object
阅读量:5283 次
发布时间:2019-06-14

本文共 1626 字,大约阅读时间需要 5 分钟。

Object类

  • 它是所有类的基类。
public class Person{    }//实际上是public class Person extends Object{    }

Object类的方法


toString方法

  • 返回值是一个描述当前对象有关信息的字符串。默认定义是:“类名+@+哈希编码”。
  • 推荐每个类对toString方法重写。
public class TestToString{    public static void main(String args[])    {        Dog d = new Dog;        System.out.println("d:="+d);            //系统会调用toString方法    }}class Dog{    public String toString()            //重写    {        return "I'm a cool Dog!";    }}

哈希编码

  • 在Java程序中,会有很多个对象,程序执行的过程中会不断地使用这些对象。
  • Java虚拟机就要找到这些对象的地址。显然是不可能在内存中来回搜索。
  • 往往采取措施就是,用一张表来记录每个对象的位置,而这张表一般用哈希编码来记录,每个对象都有自己独一无二的哈希编码,根据这个编码就可以很快的确定这个对象的位置。
  • 它独一无二的代表了这个对象,还可以通过它来找到这个对象的位置

equals方法

  • 判断两个对象是否相同,是返回true,否则返回false。
  • 默认比较的根据是对象的地址
  • 不满足于这种比较方法,可以重写。
public class TestEquals{    public static void main(String args[])    {        Cat c1 = new Cat();        Cat c2 = new Cat();        System.out.println(c1 == c2);        System.out.println(c1.equals(c2));        //如果不重写,以上两种写法都是比较地址,换汤不换药    }}class Cat{    int color;    int height;    int weight;    //重写equals方法    public boolean equals(Object obj)       //千万不能把形参写成Cat,这不符合重写的原则    {        if(obj == NULL) return false;       //空引用返回false;        else        {            if(obj instanceof Cat)      /判断obj是不是Cat的一个对象            {               Cat c = (Cat)obj;       //Object对象强制转化为Cat对象               if(c.color == this.color&&c.herght == this.height&&c.weight == this.weight)        //比较               {                   return true;               }            }        }        return false;    }}

总结


每个类从Object继承的时候,可能继承的Object中的方法已经重写。就比如String类中的equals方法已经重写。

转载于:https://www.cnblogs.com/031602523liu/p/8654179.html

你可能感兴趣的文章
MVC学习系列——Model验证扩展
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
Linux编程简介——gcc
查看>>
2019年春季学期第四周作业
查看>>
CF461B Appleman and Tree
查看>>
CF1215E Marbles
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>
mysql 8.0 zip包安装
查看>>
awk 统计
查看>>
模板设计模式的应用
查看>>
实训第五天
查看>>