【无标题】要求两个person对象的各个属性值都一样,则返回true 反之false

记录自己学equals区别

package com.zwy.object_;

public class EqualsExercise01 {
    public static void main(String[] args) {
        Person person1 = new Person("Jack", 10, '男');
        Person person2 = new Person("Jack", 10, '男'); 
        System.out.println(person1.equals(person2));//为假
  要求两个person对象的各个属性值都一样,则返回true 反之false;与要求不符

    }
}
class Person{//extends Object此时继承的是object 此时调用的是父类object的方法,object的equals方法只判断是否为同一个对象,子类没有重写方法
    private String name;
    private int age;
    private char gender;
 

    public Person(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }public boolean equals(Object obj){
    //判断如果比较的两个对象是同一个对象,则返回true
    if(this == obj){
        return  true;
    }
    if(obj instanceof  Person){
        //是person我们才比较
        //进行 向下转型,因为我需要得到object 的各个属性
        Person p = (Person)obj;
        return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
    }
    return false;
}
    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 char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 假设有如下的类定义: ```java public class Student { private String name; private String major; public Student(String name, String major) { this.name = name; this.major = major; } public boolean compare(String name, String major) { return this.name.equals(name) && this.major.equals(major); } } ``` 其中,类`Student`有两个属性`name`和`major`,分别表示学生的姓名和专业。类中定义了一个方法`compare(String name, String major)`,用于将两个参数分别与属性姓名、专业进行比较。如果相等,则返回`true`,否则返回`false`。 使用方法如下: ```java Student student = new Student("张三", "计算机科学与技术"); if (student.compare("张三", "计算机科学与技术")) { System.out.println("学生信息匹配"); } else { System.out.println("学生信息不匹配"); } ``` 上述代码创建了一个`Student`对象,并将其姓名设置为“张三”,专业设置为“计算机科学与技术”。然后调用对象的`compare`方法,比较参数是否和对象属性相等。如果匹配,则输出“学生信息匹配”,否则输出“学生信息不匹配”。 ### 回答2: 在Java中,我们可以使用以下方法将两个参数分别与属性姓名、专业进行比较并返回结果。 首先,我们需要定义一个名为"compare"的方法,该方法将接受两个参数,分别为姓名和专业。然后,我们需要定义两个属性,分别为名为"name"和"major"的属性,用于保存对象的姓名和专业。 在"compare"方法中,我们可以使用Java中的"equals"方法将传入的参数与对象的姓名和专业进行比较。如果两者相等,则返回true,否则返回false。代码示例如下: ``` public class Person { private String name; private String major; public boolean compare(String name, String major) { if (name.equals(this.name) && major.equals(this.major)) { return true; } else { return false; } } } ``` 在使用该方法时,我们需要创建一个Person对象,并设置其姓名和专业属性。然后,我们可以调用"compare"方法将需要比较的参数传递给它,并根据返回的结果进行相应的操作。 ``` Person person = new Person(); person.name = "张三"; person.major = "计算机科学"; boolean result = person.compare("张三", "计算机科学"); System.out.println(result); ``` 在上述示例中,我们创建了一个名为"person"的Person对象,并将其姓名设置为"张三",专业设置为"计算机科学"。然后,我们调用"compare"方法,并将参数"张三"和"计算机科学"传递给它。最后,我们打印出比较的结果。如果传入的参数与对象的姓名和专业相匹配,则会返回true;否则,返回false。 ### 回答3: 可以使用以下的Java代码来实现你的需求: public class Student { private String name; private String major; public Student(String name, String major) { this.name = name; this.major = major; } public boolean compare(String nameToCompare, String majorToCompare) { if (name.equals(nameToCompare) && major.equals(majorToCompare)) { return true; } else { return false; } } public static void main(String[] args) { Student student = new Student("张三", "计算机科学"); // 测试比较方法 System.out.println(student.compare("张三", "计算机科学")); // true System.out.println(student.compare("李四", "计算机科学")); // false System.out.println(student.compare("张三", "软件工程")); // false } } 在上述代码中,我们创建了一个Student类,其中包含了姓名和专业两个属性。在compare方法中,我们将传入的参数与对象的姓名和专业进行比较,若相等返回true,否则返回false。 在main方法中,我们创建了一个Student对象,并进行了几次测试,以确保比较方法的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值