热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaPTA练习:面向对象基础-覆盖toString和equals方法

在Java中,每个对象都继承自Object类,并拥有equals、toString等方法。本练习要求定义一个PersonOverride类,并覆盖其toString和equals方法。

在Java中,每个对象都继承自Object类,并拥有equals、toString等方法。本练习要求定义一个PersonOverride类,并覆盖其toStringequals方法。

1. 定义PersonOverride

a. 属性:String nameint ageboolean gender,所有变量必须为私有(private)。

b. 有参构造方法,参数为name, age, gender

c. 无参构造方法,使用this(name, age, gender)调用有参构造方法,参数值分别为"default", 1, true

d. toString()方法返回格式为:name-age-gender

e. equals方法需比较nameagegender,这三者内容都相同才返回true

2. main方法

2.1 输入n1,使用无参构造方法创建n1个对象,放入数组persons1

2.2 输入n2,然后指定name, age, gender。每创建一个对象都使用equals方法比较该对象是否已经在数组中存在,如果不存在,则将该对象放入数组persons2

2.3 输出persons1数组中的所有对象。

2.4 输出persons2数组中的所有对象。

2.5 输出persons2中实际包含的对象的数量。

2.6 使用System.out.println(Arrays.toString(PersonOverride.class.getConstructors()))输出PersonOverride的所有构造方法。

提示:使用ArrayList代替数组可以大幅简化代码,请尝试重构你的代码。

输入样例:

1
3
zhang 10 true
zhang 10 true
zhang 10 false

输出样例:

default-1-true
zhang-10-true
zhang-10-false
2
[public PersonOverride(), public PersonOverride(java.lang.String,int,boolean)]

代码示例:

import java.util.*;
class PersonOverride {
    private String name;
    private int age;
    private boolean gender;

    public PersonOverride() {
        this("default", 1, true);
    }

    public PersonOverride(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    @Override
    public String toString() {
        return this.name + "-" + this.age + "-" + this.gender;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || this.getClass() != o.getClass()) {
            return false;
        }
        PersonOverride p = (PersonOverride) o;
        return Objects.equals(this.name, p.name) && this.gender == p.gender && this.age == p.age;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n1 = in.nextInt();
        in.nextLine();
        PersonOverride[] persons1 = new PersonOverride[n1];
        for (int i = 0; i 

推荐阅读
author-avatar
雨里漾_968
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有