为什么需要转换类型啊,比较的不是值么?不转换类型不可以?

来源:9-9 Java 中的 Object 类 Ⅱ

撞门人

2016-03-17 16:43

Dog other=(Dog) obj;

       if(age!=other.age)

              return false;


写回答 关注

3回答

  • qq电子时代
    2016-03-17 17:26:30
    已采纳

    计算机语言不能以大脑的思维方式来思考  

    虽说是比较的值   在计算机语言中不同的类型就和大脑想的文字与数字的关系一样

    是无法关联到一起进行比较的   只有将它们转换成一中类型   才可以进行比较

    就比如   伍与5 是无法比较的   只有把5转换成五他们才可以有联系(都是文字)

    撞门人

    非常感谢!

    2016-03-17 22:18:10

    共 1 条回复 >

  • 断水断电
    2016-05-03 21:05:35

    这个答案好

  • Aka蔡大炮
    2016-03-17 17:18:46

    同学你结合一下上下文的代码才能好理解一点~


    // 如果另一个对象和当前对象引用都一样,那么肯定是同一个对象实例,返回true
    if (this == obj)
    return true;

    //如果另一个对象为null,返回false
    if (obj == null)
    return false;

    //如果另一个对象和当前对象类型都不一样,那么肯定不相等,返回false
    if (getClass() != obj.getClass())
    return false;

    //到这一步,传进来的对象肯定和当前对象类型一样了,那么直接转换下
    Dog other = (Dog) obj;

    //检查两个对象的age属性,不一样就返回false
    if (age != other.age)
    return false;

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530945 学习 · 6091 问题

查看课程

相似问题