10.Object类

Object类是java中的所有类的父类(老祖宗)


如果一个类没有表明extends继承于哪个类的话,那么它就默认继承于Object类


Object类中的方法适用于所有子类

1.toString()

在Object类里面定义toString()方法的时候返回的对象的哈希code码(对象地址字符串)

可以通过重写toString()方法表示出对象的属性

Dog d=newDog();

System.out.println(d);

com.imooc.Dog@1540e19d    //前面是包名 后面是在包中的地址

但是 当我按  ait+insert   插入toString()之后

@Override

public String toString() {

return "Dog{"+

"age="+ age +

", color='"+ color +'\''+

'}';

}

Dog{age=39, color='red'}



public class Dog extends Animal {

int age=39;

String color="red";

@Override

public String toString() {

return"Dog{"+

"age="+age+

", color='"+color+'\''+

'}';

}

}

public classInitial {

public static voidmain(String[] args) {

Dog d=newDog();

d.eat();

d.name="ryan";

System.out.println(d);

}

}

2.equals()

比较的是对象的引用是否指向同一块内存地址(间接地指同一个对象)

Dog dog=new Dog();

而一般情况下比较两个对象时我们喜欢比较两个对象的值是否是一致,所以要重写。

注意类的对象和类对象的区别:

类的对象   obj.getClass()   姓名 年龄 身高 种族

类对象  obj                           阿宝  20  182  熊族

···

public class Dog extends Animal {

int age=39;

String color="red";

@Override

public boolean equals(Object o) {

if (this == o) return true; //如果两个类一样返回真

if (o == null || getClass() != o.getClass()) return false;  //如果类为空返回假。如果类对象不相同,返回假

Dog dog = (Dog) o; //如果到了这一步说明可以创建对象了  把o对象强制转换为dog类型

if (age != dog.age) return false;  //正式开始比较他们的类的对象值

return color.equals(dog.color);

}

@Override

public int hashCode() {

int result = age;

result = 31 * result + color.hashCode();

return result;

}

}

public class Initial {

public static void main(String[] args) {

Dog d=new Dog();

Dog d2=new Dog();

if(d.equals(d2)){

System.out.println("两只狗相同");

}

else{

System.out.println("两只狗不同");

}

}

}

输出为 两只狗相同

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,096评论 0 4
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,268评论 0 2
  • 离着高考没有多久了,现在却还在刷着手机 即使洗澡这样的事也要拖上两天才能解决 对一般朋友很好却总是忽视好朋友 暴躁...
    MissFunk阅读 67评论 0 0