博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
object类
阅读量:5076 次
发布时间:2019-06-12

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

/*java是面向对象的语言,核心思想:找适合 的对象做适合 的事情:        方式一:自定义类,然后通过自定义的类创建对象。        方式二:sun提供了很多的类给我使用,我们只需要认识这些类,我们就可以通过这些类创建对象了。    Object类是所有类的终极父类。 任何一个类都继承了Object类。Object类:Object类常用的方法:    toString();     返回该对象的字符串表示。 返回一个字符串用于描述该对象的。疑问: toString() 有何作用?      重写toString之后,我们直接输出一个对象的时候,就会输出符合我们所需求的格式数据。        equals(Object obj)   用于比较两个对象的内存地址,判断两个对象是否为同一个对象。        hashCode()   返回该对象的哈希码值(大家可以把哈希码就 理解成是对象的内存地址)/java中的规范:一般我们重写了一个类的equals方法,我们都会重写它的hashCode方法。java是开源....源代码公开...查看源代码的方式:    方式一: 按住ctrl键,单击你需要看的源代码.        方式二:把光标移动到你需要查看代码处按下F3.    为什么我们要查看源代码:    1,查看源代码可以了解别人是如何写出这个技术的,让我们了解的更加的深入。    2. 吸收大牛的思想。看源代码最忌讳的一点: 不要每行代码都弄懂是什么意思,能看个大概 猜出他意思就足矣。 */class Person{        int id;        String name;    public Person(int id, String name) {        this.id = id;        this.name = name;    }    public Person() {    }        //目前我需要直接输出一个对象的时候,输出 的格式是: 编号:110 姓名: 狗娃  这种格式。 目前Object的//    toString方法无法满足子类的需求,那么这时候我们就应该对Object类的toString进行重写。    @Override    public String toString() {        return "编号:"+ this.id + " 姓名:"+this.name;    }            //为什么要重写:Object的equals方法默认比较的是两个对象的内存地址,我目前需要比较的是两个对象的身份证,所以Object类的equals方法不符合我现在的需求。    @Override    public boolean equals(Object obj) {         Person p  = (Person)obj;        return this.id== p.id;    }        @Override    public int hashCode() {        return  this.id;    }            }public class Demo1 {    public static void main(String[] args) {                /*        Object o = new Object();        System.out.println(o.toString());  // java.lang.Object@18b3364    返回的字符串表示: 完整类名+@+ 对象的哈希码        System.out.println(o);  // 通过查看源代码得知,直接输出一个对象 的时候,实际上在println方法内部会调用这个 调用的toString方法,把把toString方法返回的内容输出。        //疑问: 为什么直接输出一个对象的时候和输出对象的toString方法返回的字符串结果是一样的呢?                        Person  p1 = new Person(110,"狗娃");        System.out.println("p1:"+p1);          //如果我们能够输出一个p对象的时候,输出的格式: 编号:110 姓名: 狗娃..        Person  p2 = new Person(112,"狗剩");        System.out.println("p2:"+p2);          */                        Person p1 = new Person(110,"狗娃");        Person p2 = new Person(110,"陈富贵");        //需求:在现实生活中只要两个人的身份证一致,那么就是同一个人。        System.out.println("p1与p2是同一个对象吗?"+ p1.equals(p2));                System.out.println("p1哈希码:"+ p1.hashCode());        System.out.println("p2哈希码:"+ p2.hashCode());                    }            }

 

转载于:https://www.cnblogs.com/xufengyuan/p/6357466.html

你可能感兴趣的文章
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>