Object类

  • 它是所有类的基类。
  1. public class Person
  2. {
  3. }
  4. //实际上是
  5. public class Person extends Object
  6. {
  7. }

Object类的方法


toString方法

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

哈希编码

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

equals方法

  • 判断两个对象是否相同,是返回true,否则返回false。
  • 默认比较的根据是对象的地址
  • 不满足于这种比较方法,可以重写。
  1. public class TestEquals
  2. {
  3. public static void main(String args[])
  4. {
  5. Cat c1 = new Cat();
  6. Cat c2 = new Cat();
  7. System.out.println(c1 == c2);
  8. System.out.println(c1.equals(c2));
  9. //如果不重写,以上两种写法都是比较地址,换汤不换药
  10. }
  11. }
  12. class Cat
  13. {
  14. int color;
  15. int height;
  16. int weight;
  17. //重写equals方法
  18. public boolean equals(Object obj) //千万不能把形参写成Cat,这不符合重写的原则
  19. {
  20. if(obj == NULL) return false; //空引用返回false;
  21. else
  22. {
  23. if(obj instanceof Cat) /判断obj是不是Cat的一个对象
  24. {
  25. Cat c = (Cat)obj; //Object对象强制转化为Cat对象
  26. if(c.color == this.color&&c.herght == this.height&&c.weight == this.weight) //比较
  27. {
  28. return true;
  29. }
  30. }
  31. }
  32. return false;
  33. }
  34. }

总结


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

Java Class Object的更多相关文章

  1. 理解JAVA - 面向对象(object) - 属性,方法

    理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...

  2. Java class,Object,Class的区别

    代码: http://www.cnblogs.com/hongdada/p/6060487.html package com.company; public class Main { public s ...

  3. centos 解压jdk安装包方式安装jdk 出现 java/lang/NoClassDefFoundError: java/lang/Object 错误

    安装完JDK ,设定环境变量后出现这个错误: [root@localhost lib]# javacError occurred during initialization of VMjava/lan ...

  4. Java总结篇系列:java.lang.Object

    从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解. Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java ...

  5. type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds int,java.lang.Object

    今天在进行代码检查的时候出现下面的异常: type parameters of <T>T cannot be determined; no unique maximal instance ...

  6. 解决本机安装多版本jdk导致The type java.lang.Object cannot be resolved It is indirectly referenced ...

    本机开始安装了jdk1.6,然后安装了jdk1.8 当在调自动化的时候,发现传入函数传参String类型,报错The type java.lang.Object cannot be resolved ...

  7. 使用eclipse JDT compile class,解决 无法确定 X 的类型参数;对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最大实例

    ant 命令行方式执行build javac编译class出现 泛型无法转换 无法确定 <X>X 的类型参数:对于上限为 X,java.lang.Object 的类型变量 X,不存在唯一最 ...

  8. Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object

    本地原来已经安装了JAVA JDK1.7并配置好了环境变量; 然后又安装了JDK8,想2个版本并存. 然后发现eclipse 打不开,闪退.然后查看环境: 发现 C:\Users\Administra ...

  9. 转!!java中Object转String

    Object转为String的几种形式 在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString ...

  10. eclipse中java文件报错:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files

    问题:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class fi ...

随机推荐

  1. 配置SpringBoot方便的切换jar和war

    配置SpringBoot方便的切换jar和war 网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式. jar到war修改步骤 pom文件修改 ...

  2. 登录验证码的生成Java代码

    package example7; import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java. ...

  3. css3实现自定义滚动条样式详解

    在写页面的时候有时候滚动条的样式与页面风格不统一这时候就用到了自定义滚动条 1.首先弄清楚页面的滚动条分为哪些部分,在写的时候分为几块 定义滚动条的时候先进行宏观定义,定义滚动条,然后定义滑块,然后定 ...

  4. 【Spark】源码分析之RDD的生成及stage的切分

    一.概述 Spark源码整体的逻辑(spark1.3.1): 从saveAsTextFile()方法入手 -->saveAsTextFile()  --> saveAsHadoopFile ...

  5. Delphi7 GDI+学习

    Delphi7自带的绘图有锯齿,所以要学习GDI+ 主要是从这个网站学习 http://www.bianceng.com/Programming/Delphi/201212/34691.htm 相关控 ...

  6. socketpair通信

    1.线程间通信(参考安卓源码InputTransport.cpp) #include <pthread.h> #include <sys/types.h> /* See NOT ...

  7. 组播___IGMP

    一.基本概念: 1.协议概述: 是运行在主机和与主机直连的路由器之间,其实现的功能是双向的:一方面,主机通过IGMP通知路由器希望接收某个特定组播组的信息:另一方面,路由器通过IGMP周期性地查询局域 ...

  8. JVM培训序幕篇

    明天老王要给我们讲JVM的知识,提前发了一个小Demo给我们看,代码如下: package demo; import java.util.*; public class Demo { public s ...

  9. R语言爬虫:CSS方法与XPath方法对比(代码实现)

    CSS选择器和XPath方法都是用来定位DOM树的标签,只不过两者的定位表示形式上存在一些差别: CSS 方法提取节点 library("rvest") single_table_ ...

  10. [Cracking the Coding Interview] 4.1 Route Between Nodes 节点间的路径

    Given a directed graph, design an algorithm to find out whether there is a route between nodes. 这道题让 ...