1.面向对象练习
package com.logic.homework;
//编写Doctor类{name, age,job, gender, sal}相应的getter()和setter0)方法,5个参数的构造器,
//重写父类(Object)的equals()方法:
//public boolean equals(Object obj),并判断测试类中创建的两个对象是否相等
//相等就是判断属性是否相同
public class Doctor {
//属性
private String name;
private int age;
private String job;
private char gender;
private double sal;
public Doctor(String name, int age, String job, char gender, double sal) {
this.name = name;
this.age = age;
this.job = job;
this.gender = gender;
this.sal = sal;
}
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;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
//方法
public boolean equals(Object obj) {
//判断两个比较对象是否相同
if (this == obj) {
return true;
}
//判断obj是否为Doctor或其子类
//过关斩将校验方法
if (!(obj instanceof Doctor)) {
return false;
}
//向下转型 因为obj为Doctor或其子类
Doctor doctor = (Doctor) obj;
return this.name.equals(doctor.name) && this.age == doctor.age
&& this.job.equals(doctor.job) && this.gender == doctor.gender
&& this.sal == doctor.sal;
}
}
package com.logic.homework;
public class Homework10 {
public static void main(String[] args) {
Doctor doctor1 = new Doctor("logic", 20, "BOSS", '男', 200000);
Doctor doctor2 = new Doctor("logic", 20, "BOSS", '男', 200000);
System.out.println(doctor1.equals(doctor2));
}
}
2.equals和==的比较
==
概念:比较运算符
用于基本数据类型:可以,比较数值大小
用于引用类型:可以,判断对象是否相等
equals
概念:Object类方法(Java类都可以使用equals)
用于基本数据类型:不可以
用于引用类型:可以,默认判断对象是否相等 但是子类往往重写该方法,比较对象的属性是否相等(比如String Integer)
1661

被折叠的 条评论
为什么被折叠?



