黑马程序员技术交流社区

标题: 脑子转不过来了,这个地方太绕,求大神帮忙 [打印本页]

作者: yiyajing    时间: 2016-5-24 01:25
标题: 脑子转不过来了,这个地方太绕,求大神帮忙
package com.heima.bean;
public class Student {
        private String name;
        private int age;
        public Student() {                                          
                super();
        }
        public Student(String name, int age) {         
                super();
                this.name = name;
                this.age = age;
        }
        public String getName() {                               
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        /*@Override
        public String toString() {
               
                return "我的姓名是:" + name + ",我的年龄是:"+ age;
        }*/
       
        @Override
        public String toString() {
                return "Student [name=" + name + ", age=" + age + "]";
        }

        @Override
        //重写equals方法
        public boolean equals(Object obj) {
                Student  s = (Student)obj;
                return this.name.equals(s.name) &&this.age == s.age;
        }
}

就到最后这三行代码怎么也转不过来,求大神帮忙
作者: 坂田银时    时间: 2016-5-24 08:07
你也刚学基础班?? 我也刚开始学10来天,也是到这弄不懂啊. 同求大神指导啊
作者: daniel031699    时间: 2016-5-25 00:15
重写的equals方法是用来比较对象信息是否相等。
Student  s = (Student)obj;因为equals方法传进来的对象是obj类型的。又需要对比学生信息,所以需要把它强制转化为student类型的对象。
this.name.equals(s.name) &&this.age == s.age;是用来判断当前传入的学生姓名,年龄是否和强制转化后的student的s信息是否相等。而this.name.equals方法是用未重写的方法。用来比较传入数据是不是相等。
重写的方法返回的是boolean,而&&的结果也是boolean类型的。

作者: yiyajing    时间: 2016-5-25 00:33
daniel031699 发表于 2016-5-25 00:15
重写的equals方法是用来比较对象信息是否相等。
Student  s = (Student)obj;因为equals方法传进来的对象是 ...

说的很清楚,多谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2