Java常见对象Object类

public int hashCode() : 返回该对象的哈希码值。

  注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值。你可以理解成地址值。

  1. package common_object;
  2.  
  3. public class Demo extends Object{
  4.  
  5. }
  6.  
  7. package common_object;
  8.  
  9. public class DemoTest {
  10. public static void main(String[] args) {
  11. Demo d = new Demo();
  12. System.out.println(d.hashCode()); //
  13. Demo d2 = new Demo();
  14. System.out.println(d2.hashCode()); //
  15. }
  16. }

public final Class getclass() : 返回此Object的运行时类

  Class类的方法:public String getName() : 以String 的形式返回此Class对象所表示的实体。

  1. package common_object;
  2.  
  3. public class Demo extends Object{
  4.  
  5. }
  6.  
  7. package common_object;
  8.  
  9. public class DemoTest {
  10. public static void main(String[] args) {
  11. Demo d = new Demo();
  12. Class c = d.getClass();
  13. System.out.println(c.getName()); //common_object.Demo
  14. String str = new Demo().getClass().getName();
  15. System.out.println(str); //common_object.Demo
  16. }
  17. }

public String toString() : 返回该对象的字符串表示。

Integer类下的静态方法:public static String toHexString(int i) : 把一个整数转成一个十六进制表示的字符串。

  1. package common_object;
  2.  
  3. public class Demo extends Object{
  4.  
  5. }
  6.  
  7. package common_object;
  8.  
  9. public class DemoTest {
  10. public static void main(String[] args) {
  11. Demo d = new Demo();
  12. System.out.println(d.hashCode()); //
  13. System.out.println(d.getClass().getName()); //common_object.Demo
  14. System.out.println("-----------------------");
  15. System.out.println(d.toString()); //common_object.Demo@707f7052
  16. //toString() 方法的值等价于
  17. //getClass().getName() + '@' + Integer.toHexString(hashCode())
  18. //就等于
  19. //this.getClass().getName() + '@' + Integer.toHexString(this.hashCode())
  20. System.out.println("-----------------------");
  21. System.out.println(d.getClass().getName() + '@' + Integer.toHexString(d.hashCode()));
  22. System.out.println(d.toString());
  23. //common_object.Demo@707f7052
  24. //common_object.Demo@707f7052
  25. }
  26. }

这个信息的组成我们讲解了,但是这个信息是没有任何意义的,所以,建议所有的子类都重写该方法。

  把该类的所有成员变量的值组成返回即可。重写的最终版方案就是自动生成toString()方法。

  注意:直接输出一个对象的名称就是调用该对象的toString() 函数。

  如何自动生成toString()方法。-------   .java 程序界面上,点击右键,选择 Source (Alt + Shift + S),在选择Generate toString...就可以了。

  1. //重写toString() 方法。
  2. package common_object;
  3.  
  4. public class Demo extends Object{
  5. private String name;
  6. private int age;
  7. public Demo() {
  8. super();
  9. // TODO Auto-generated constructor stub
  10. }
  11. public Demo(String name, int age) {
  12. super();
  13. this.name = name;
  14. this.age = age;
  15. }
  16. public String getName() {
  17. return name;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. public int getAge() {
  23. return age;
  24. }
  25. public void setAge(int age) {
  26. this.age = age;
  27. }
  28. @Override
  29. public String toString() {                      
  30. return "Demo [name=" + name + ", age=" + age + "]"; //这里就是toString()方法的重写。
  31. }
  32.  
  33. }
  34. package common_object;
  35.  
  36. public class DemoTest {
  37. public static void main(String[] args) {
  38. Demo d = new Demo();
  39. System.out.println(d.hashCode()); //
  40. System.out.println(d.getClass().getName()); //common_object.Demo
  41. System.out.println("-----------------------");
  42. System.out.println(d.toString()); //Demo [name=null, age=0] 在这里改变
  43. //toString() 方法的值等价于
  44. //getClass().getName() + '@' + Integer.toHexString(hashCode())
  45. //就等于
  46. //this.getClass().getName() + '@' + Integer.toHexString(this.hashCode())
  47. System.out.println("-----------------------");
  48. System.out.println(d.getClass().getName() + '@' + Integer.toHexString(d.hashCode()));
  49. System.out.println(d.toString());
  50. //common_object.Demo@707f7052
  51. //Demo [name=null, age=0] 这里也有改变
  52. }
  53. }

public boolean equals(Object obj) : 指示其他某个对象是否与此对象“相等”。

  这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们又要重写这个函数。

  一般都是用来比较对象成员变量值是否相同。

  重写最终版可以利用 eclipse 自动生成。 -------   .java 程序界面上,点击右键,选择 Source (Alt + Shift + S),在选择Generate hashCode() 和 equals()... 就可以了。

  1. package common_object;
  2.  
  3. public class Demo extends Object{
  4. private String name;
  5. private int age;
  6. public Demo() {
  7. super();
  8. // TODO Auto-generated constructor stub
  9. }
  10. public Demo(String name, int age) {
  11. super();
  12. this.name = name;
  13. this.age = age;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public int getAge() {
  22. return age;
  23. }
  24. public void setAge(int age) {
  25. this.age = age;
  26. }
  27. @Override
  28. public int hashCode() {
  29. final int prime = 31;
  30. int result = 1;
  31. result = prime * result + age;
  32. result = prime * result + ((name == null) ? 0 : name.hashCode());
  33. return result;
  34. }
  35. @Override
  36. public boolean equals(Object obj) {
  37. if (this == obj)
  38. return true;
  39. if (obj == null)
  40. return false;
  41. if (getClass() != obj.getClass())
  42. //另一种表示方法:
  43. //格式:对象名 instanceof 类名
  44. //表示:判断对象名是否是该类名一个对象
  45. //if (!(obj instanceof Demo))
  46. // return false;
  47. return false;
  48. Demo other = (Demo) obj;
  49. if (age != other.age)
  50. return false;
  51. if (name == null) {
  52. if (other.name != null)
  53. return false;
  54. } else if (!name.equals(other.name))
  55. return false;
  56. return true;
  57. }
  58. }
  59.  
  60. package common_object;
  61.  
  62. public class DemoTest {
  63. public static void main(String[] args) {
  64. Demo d1 = new Demo("白",21);
  65. Demo d2 = new Demo("黑",20);
  66. System.out.println(d1.equals(d2)); // false
  67. }
  68. }

Java常见对象Object类中的个别方法的更多相关文章

  1. Java Object类中的equals方法

    Object类中的equals方法用于检测一个对象是否等于另外一个对象.在Object类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用,它们一定是相等的.从这点上看,将其作为 ...

  2. Object 类中的 equals方法

    1 相等与同一 如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equals 函数原型为:public bo ...

  3. 25. object类中的一些方法分析

    1. Object java是面向对象语言,所以其核心思想: 找合适的对象,做合适的事 Object是所有类的终极基类.任何一个类都继承了Object类 2. Object的部分函数列表 1)Stri ...

  4. 重写Object类中的equals方法

    Object是所有类的父亲,这个类有很多方法,我们都可以直接调用,但有些方法并不适合,例如下面的student类 public class Student { //姓名.学号.年纪 private S ...

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

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

  6. Java 常用对象-Object类

    2017-10-31 23:42:08 Object类:类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 或者说,每个类都直接或者间 ...

  7. Java基础:Object类中的equals与hashCode方法

    前言 这个系列的文章主要用来记录我在学习和复习Java基础知识的过程中遇到的一些有趣好玩的知识点,希望大家也喜欢. 一切皆对象   对于软件工程来说面向对象编程有一套完整的解决方案:OOA.OOD.O ...

  8. 常见对象-Object类

    Object类概述 是类层次结构的根类,每个类都直接或者间接继承该类. eg: 1.class Student extends Object{}  //直接继承 2.class Student ext ...

  9. [Python之路] object类中的特殊方法

    一.object类的源码 python版本:3.8 class object: """ The most base type """ # d ...

随机推荐

  1. Android教程

    转载,但请务必在明确位置注明出处! http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/ Android Killer ...

  2. SQL 语句(原生)

    //查 //查询表里的所有数据 select * from 表名 //根据id等字段查询数据 select * from 表名 where 字段 = 值 or 字段 = 值 (例):select * ...

  3. 换装demo随手记

    1 修补demo错误,使VirtualWorldExample可正常运行 CharacterGenerator.AssetbundleBaseURL 做如下修改 public static strin ...

  4. 3DMAX 3场景制作

    1 模型制作 2 UVW贴图展开 1 打开材质编辑器,给模型一个材质(以后应该以这个材质生成uvw展开,进而生成贴图,贴图绘制完毕后,再贴回这个材质中,就完成了给模型加贴图的操作) 2 在编辑面板中添 ...

  5. JS与JQ的对比与提高

    来吧, 案例1:先上个例子js写的省市二级联动 <!DOCTYPE html><html> <head> <meta charset="UTF-8& ...

  6. JPA-day04 核心API 一级缓存 主键生成策略 实体对象的4种状态 多对一关系 延迟加载

  7. 执行gulp build报错

    问题与分析 在执行gulp build报错如下: D:\coding\Resume\Resumes>gulp build gulp build[5628]: src\node_contextif ...

  8. Flask (七) 部署

    阿里云部署Flask项目   部署Flask项目和部署Django项目基本一致,我们也使用uwsgi+nginx   我们在部署Django项目基础上部署Flask项目   1, 将uwsgi.ini ...

  9. Qt 2D绘图之二:抗锯齿渲染和坐标系统

    一.抗锯齿渲染 1.1 逻辑绘图 图形基元的大小(宽度和高度)始终与其数学模型相对应,下图示意了忽略其渲染时使用的画笔的宽度的样子. 1.2 物理绘图(默认情况) 在默认的情况下,绘制会产生锯齿,并且 ...

  10. ZROI #365. 【2018普转提day18专题】嘤嘤嘤嘤

    ZROI #365. [2018普转提day18专题]嘤嘤嘤嘤 直接放代码 具体做法见注释 #include<stdio.h> #include<cstring> #inclu ...