Object类被称为上帝类,也被称为祖宗类。在定义Java类时,如果没有指定父类,那么默认都会去继承Object类。配合Java的向上类型转换,借助Object类就可以完成很多工作了。

  在Object类中,有几个常用的方法,比如getClass()、toString()和equals()这三个方法。它们在Object.java的实现如下:(Object.java的源码在Java安装目录下的src.zip中,其目录结构为src\java\lang\Object.java)。

 public final native Class<?> getClass();

 public boolean equals(Object obj) {
return (this == obj);
} public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

  对于getClass()来说,它可以在运行时获得类。

  equals()通常用来进行比较,在Object类中,它进行了引用的比较,只有引用相同时会返回true。但是这样并不是我们想要的比较的情况,比如字符串的比较是比较每个字符是否相同。那么在String类中就会对equals()方法进行重写,String类中的equals()方法的实现如下:(String.java的源码在Java安装目录下的src.zip中,其目录结构为src\java\lang\String.java)。

 public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false/;
i++;
}
return true;
}
}
return false;
}

  字符串的比较,进行了几次判断:

1、首先判断引用相同,如果相同则返回true;

2、判断传入的对象是否为String,如果不是String,则直接返回false,没有比较的必要,狗和人怎么比;

3、比较字符串的长度,如果两个字符串的长度不相同,也就不用比较了,长度不同显而易见是不相同了;

4、上面的比较都没成立,则进行逐字符的比较。

  对于两个对象的比较,通常我们需要类似像String类中的equals()方法一样,这样就需要重写equals()方法。

  第三个方法toString()默认在Object类中输出当前运行时类和一个HashCode,这对于我们帮助也并不是特别大,对于自己写的类,可以将类中的所有属性进行输出,当重写了toString()方法后,直接使用System.out.println()中传对象名,即可默认调用对象的toString()方法。

  作为初学者,就是要进行不断的写代码,还有就是大量的进行记录自己所学的内容,让自己加深印象,还有就是忘记的时候方便的查找,记录在这里随时方便自己!


我的微信公众号:“码农UP2U”

 

Java中的Object类的几个方法的更多相关文章

  1. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  2. Java基础(43):Java中的Object类与其方法(转)

    Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...

  3. java中的object类

    在Java中,任何一个类都扩展来自Object类.当没有为某一个类定义父类时,Java会自动定义Object类为其父类. object类的一些常用方法: (1)public String toStri ...

  4. java中的Object类和其clone()

    1.Object是所有类的父类,任何类都默认继承Object,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. ...

  5. Java中的Object类介绍

    Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object类. Object类中的所有方法适用于所有子类 Object中比较常见的方法: ...

  6. Java中的Object类的toString()方法,equals()方法

    Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...

  7. Java中增强一个类的几种方法

    今天有人问我怎么增强一个类的功能.博客刚好没东西,今天就讲讲增强类. 增强的手段有三种类型: 1.继承或者实现接口:特点是被增强对象不能变,增强的内容不能变. 2.装饰着模式:特点是被增强对象可变,但 ...

  8. Java中特殊的类——Object类

    Java中特殊的类--Object类 1.Object类的概述 Object类是java默认提供的类.Java中除了Object类,所有的类都是有继承关系的.默认会继承Object类,即所有的对象都可 ...

  9. 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)

    java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...

随机推荐

  1. IT兄弟连 Java语法教程 流程控制语句 控制循环结构2

    使用continue忽略本次循环剩下的语句 continue的功能和break有点类似,区别是continue只是忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环:而break则是完全终止循 ...

  2. 【VM配置】配置主机名称、网卡和yum源配置

    一,.配置主机名 为了对主机能进行分区,除了要有ip地址外还需要主机名,主机之间可以通过这个类似域名的名称来相互访问.linux系统中主机名配置文件一般在/etc/hostname文件中.另外我们也可 ...

  3. C++ day01-C++的函数和对象

    C++的函数和对象 1.1 1 混合型语言 c++以.cpp为文件扩展名,有且只有一个名为main的主函数,因保留了这个面向过程的主函数,所以被称为混合语言 2 注释方式 . C++的注释方式有两种, ...

  4. linux服务器上配置进行kaggle比赛的深度学习tensorflow keras环境详细教程

    本文首发于个人博客https://kezunlin.me/post/6b505d27/,欢迎阅读最新内容! full guide tutorial to install and configure d ...

  5. attention 汇总(持续)

    Seq2seq Attention Normal Attention 1.  在decoder端,encoder state要进行一个线性变换,得到r1,可以用全连接,可以用conv,取决于自己,这里 ...

  6. ASP.NET中WebService的创建和部署以及通过反射动态调用WebService

    一.在ASP.NET中创建WebService 首先我们先创建一个ASP.NET Web 应用程序,此处我们以VS2017为例 点击新创建的项目,右键添加新建项,选择Web服务,输入名称后点击添加 这 ...

  7. Java之IO模型

    首先来看一下同步与异步的概念: 1.同步是指当前端发起一次操作请求时,只有后台执行完所有的代码操作才会给前端返回值. 2.异步是将前端发回的消息加入消息队列,并且立刻给前端返回请求,告诉用户可以离开当 ...

  8. springmvc学习笔记二:重定向,拦截器,参数绑定

    Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 返回void 在Contro ...

  9. 用vue和layui简单写一个响应式数据展示表

    在创建项目之前,先把我们需要的文件打包处理 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  10. 多个浏览器下应用前端JS实现一键导出excel表

    自己试验了几种方法,找到一种较为全面的一种方式一键输出Excel表格,代码如下 <!DOCTYPE html> <html> <head lang="en&qu ...