idea自动生成的代码问题

来源:3-13 编程练习

JackHe97

2021-03-24 15:52:44

注释最后一句为什么可以

​student.name

name不是私有化了吗

private String name;

不应该用get方法获取吗


@Override
   public boolean equals(Object o) {
if (this == o) return true;
//        if (!(o instanceof Student)) return false;
//        Student student = (Student) o;
//        return stuId == student.stuId &&
//                Float.compare(student.score, score) == 0 &&
//                name.equals(student.name);
       if (o.getClass() == Student.class) {
Student student = (Student) o;
           return student.getStuId() == stuId && (student.getName().equals(name));
       }
return false;
   }


写回答

2回答

好帮手慕小班

2021-03-25

同学你好,private私有的,表示只能在本类中调用,而同学是直接在本类中调用,所以可以正常调用的。

如果是在其他类中调用,就不能这样书写了。

祝学习愉快!

0

好帮手慕小班

2021-03-24

同学你好,建议同学能够将完整的代码贴出,便于老师根据代码来正确的解释。

祝学习愉快!

0
hackHe97
hpre class="brush:java;toolbar:false">public class Student {
//根据需求完成Student类的定义
private int stuId;
private String name;
private float score;

public Student() {
}

public Student(int stuId, String name, float score) {
this.stuId = stuId;
this.name = name;
this.score = score;
}

public int getStuId() {
return stuId;
}

public void setStuId(int stuId) {
this.stuId = stuId;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public float getScore() {
return score;
}

public void setScore(float score) {
this.score = score;
}

@Override
public String toString() {
return "Student{" +
"学号=" + stuId +
", 姓名='" + name + '\'' +
", 成绩=" + score +
'}';
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
// if (!(o instanceof Student)) return false;
// Student student = (Student) o;
// return stuId == student.stuId &&
// Float.compare(student.score, score) == 0 &&
// name.equals(student.name);
if (o.getClass() == Student.class) {
Student student = (Student) o;
return student.getStuId() == stuId && (student.getName().equals(name));
}
return false;
}

@Override
public int hashCode() {
return Objects.hash(stuId, name, score);
}
}
​public class StudentTest {
public static void main(String[] args) {
// 定义三个Student类的对象及一个HashSet类的对象
Student stu1 = new Student(1, "Tom", 87);
Student stu2 = new Student(2, "Lucy", 95);
Student stu3 = new Student(3, "William", 65);
Set set = new HashSet();
// 将Student类的对象添加到集合中
set.add(stu1);
set.add(stu2);
set.add(stu3);
// 使用迭代器显示Student类的对象中的内容
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// 添加一个重复数据到Set中,观察输出结果
System.out.println("***********************************");
Student stu4 = new Student(1, "Tom", 87);
set.add(stu4);
it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}

}

}


h021-03-24
共1条回复

0 学习 · 16556 问题

查看课程