当前位置: 首页 > 知识库问答 >
问题:

如何有多个对象的方法?

燕永昌
2023-03-14

我有一个程序,它有一个超级类,个人和子类,学生,并试图根据他们的生日和名字来比较他们什么时候是平等的。我做对了,但是在我试图解决的提示下,我得到了一个错误,自动评分器是:“测试学生和学生是一样的,即使成绩不同”,预期结果是真的,但我总是得到错误。这个程序在比较人和学生时起作用,在比较人和人时起作用,而不是学生和学生,我不知道为什么。

主要类别:

import java.util.Scanner;

public class PersonTester {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.println("Please enter the Person's name: ");
        String name = in.nextLine();
        System.out.println("Please enter the Person's birthday: ");
        String birthday = in.nextLine();

        System.out.println("Please enter the Student's name: ");
        String studentName = in.nextLine();
        System.out.println("Please enter the Student's birthday: ");
        String studentBirthday = in.nextLine();
        System.out.println("Please enter the Student's grade: ");
        int grade = in.nextInt();

        Person p1 = new Person(name, birthday);
        Student p2 = new Student(studentName, studentBirthday, grade);

        System.out.println("Same: " + p1.equals(p1, p2));
    }
}

超类:

public class Person {
    private String name;
    private String birthday;

    public Person(String name, String birthday) {
        this.name = name;
        this.birthday = birthday;
    }

    public String getBirthday() {
        return birthday;
    }

    public String getName() {
        return name;
    }

    //Create a equals method here
    public boolean equals(Person p1, Person p2) {
        boolean isEqual = false;
        if ((p1.getName()).equals(p2.getName()) 
                && (p1.getBirthday()).equals(p2.getBirthday())) {
            isEqual = true;
        }
        return isEqual;
    }
}

子类:

public class Student extends Person {
    //Instance variable
    private int grade;

    //Subclass constructor
    public Student(String name, String birthday, int grade) {
        super(name, birthday);
        this.grade = grade;
    }

    public int getGrade() {
        return grade;
    }
}

共有1个答案

贾俊喆
2023-03-14

对人的实例 p1 使用等于 的方法。要编写正确的方法,请像这样编写此方法:

public boolean equals(Person p2) {
    boolean isEqual = false;
    if ((this.getName()).equals(p2.getName())
            && (this.getBirthday()).equals(p2.getBirthday())) {
        isEqual = true;
    }
    return isEqual;
}

当您调用此方法时,请执行以下操作:

p1.equals(p2)
 类似资料:
  • 问题内容: 我想从Java方法返回两个对象,并且想知道这样做的好方法是什么? 我能想到的可能的方法是:回报HashMap(因为这两个对象是相关的),或者返回的对象。 更准确地说,我要返回的两个对象是(a)对象和(b)相同名称的逗号分隔。 我想从一个方法返回这两个对象,因为我不想遍历对象列表以获得逗号分隔的名称(我可以在此方法的同一循环中执行此操作)。 不知何故,返回a 看起来不是很优雅的方式。 问

  • 问题内容: 我以前从未使用过JSON,所以我对它的语法不熟悉。 目前,我有多个包含不同数据的数组。 我想创建一个JSON对象,其中包含多个数组,每个数组包含几段数据。 例如 一个称为汽车的对象,包含多个数组,每个数组用于不同的汽车品牌。在每个数组中,将是汽车的模型以及其他一些类型的数据,例如门的数量(这只是一个虚构的例子,并不重要)。 如果有人用示例解释语法,将不胜感激。 问题答案: 在最外层,J

  • 本文向大家介绍如何过滤具有多个对象的JSON数据?,包括了如何过滤具有多个对象的JSON数据?的使用技巧和注意事项,需要的朋友参考一下 要使用多个对象过滤JSON数据,可以将filter和==一起使用。 示例 要运行上述程序,您需要使用以下命令- 输出结果 在这里,我的文件名为demo194.js。这将产生以下输出-

  • 有一个应用程序需要像搜寻列表这样的东西。这个应用程序可以用不同的配置多次启动。有没有办法跨JVM共享数据结构。在JVM中是有效的。有一个数据库可以解决这个问题。但是,有没有更简单、更快速的方法?

  • 问题内容: 我想知道如何列出对象可用的所有方法,例如: 这应该打印: 问题答案: 您可以用来获取属于某个对象的所有属性(无论是否可枚举)。例如: 然后,您可以使用来仅获取方法: 在ES3浏览器(IE8及更低版本)中,内置对象的属性不可枚举。像和不是内置的对象,它们是由浏览器定义的,很可能是通过设计枚举的。 从ECMA-262第3版开始: 全局对象 有一个唯一的全局对象(15.1),它在控制进入任何

  • 问题内容: 我是Nodejs的新手。如何导出多个对象?例如 我想使用类似的模型: 我想使用类似这样的对象: 谢谢你的建议:D 更新 :解决以下方法: 但是我还有另一个问题。如何动态分配模型? 更新通过 以下方式解决了第二个问题: 问题答案: 只需将它们包装在对象文字中即可。在纯JS(没有CoffeeScript)中,将是: 在coffeescript中,您使用缩进,但要创建空对象时除外: