面向对象的核心思想:“找合适的对象,作适合的事情”。java
合适的对象:算法
1. 本身描述类,本身建立对象。编程
2. sun已经描述了好多经常使用的类,能够使用这些类建立对象。函数
API(Application Program Interface)操作系统
sun定义的那么多类的终极父类是Object。Object描述的是全部类的通用属性与方法。3d
1.1 toString方法对象
toString() 返回对象的描述信息 java.lang.Object@de6ced 类名@哈希码值的十六进制形式。blog
直接输入一个对象的时候,会调用对象的toString方法。继承
练习:自定义一个Person类,打印该对象的描述信息,要求描述信息为:姓名 — 年龄内存
问题:调用p的toString方法时,打印出来的信息是类名+内存地址值。不符合要求。根据咱们以前学的继承,假如父类的指定的功能不能知足要求,那么子类能够复写父类的功能函数。那么该对象再调用toString()方法时,则会调用子类复写的toString方法。
编程习惯:开发者要对自定义的类重写toString(),对对象作详细的说明
1.1 equals方法
equals() 返回的是比较的结果 若是相等返回true,不然false,比较的是对象的内存地址值。
问题:比较两我的是不是同一我的,根据两我的的名字判断。
问题:若是根据名字去做为判断两我的是不是同一个时,明显p与p1是同一我的,可是程序输入却不是同一我的。不符合咱们现实生活的要求。
解决: 根据咱们学的继承中的函数复写,若是父类的函数不能知足咱们目前的要求,那么就能够在子类把该功能复写,达到复合咱们的要求。
编程习惯:开发者要对自定义的类重写equals(),使得比较两个对象的时候比较对象的属性是否相等,而不是内存地址。
1.1 hashCode方法
hashCode() 返回该对象的哈希码值: 采用操做系统底层实现的哈希算法。 同一个对象的哈希码值是惟一的。
java规定若是两个对象equals返回true,那么这两个对象的hashCode码必须一致。