7-3 jmu-Java-03面向对象基础-05-覆盖 --笔记篇
2024-01-01 07:19:39
题目
ava每个对象都继承自Object,都有equals、toString等方法。
现在需要定义PersonOverride类并覆盖其toString与equals方法。
- 新建PersonOverride类
a. 属性:String name、int age、boolean gender,所有的变量必须为私有(private)。
b. 有参构造方法,参数为name, age, gender
c. 无参构造方法,使用this(name, age,gender)调用有参构造方法。参数值分别为"default",1,true
d.toString()方法返回格式为:name-age-gender
e. equals方法需比较name、age、gender,这三者内容都相同,才返回true.
- main方法
2.1 输入n1,使用无参构造方法创建n1个对象,放入数组persons1。
2.2 输入n2,然后指定name age gender。每创建一个对象都使用equals方法比较该对象是否已经在数组中存在,如果不存在,才将该对象放入数组persons2。
2.3 输出persons1数组中的所有对象
2.4 输出persons2数组中的所有对象
2.5 输出persons2中实际包含的对象的数量
2.5 使用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{
String name;
int age;
boolean gender;
public PersonOverride(String name, int age, boolean gender){
this.name=name;
this.age=age;
this.gender=gender;
}
public PersonOverride(){
this("default",1,true);
}
@Override
public String toString() {
return name + '-' + age + '-' +gender;
}
@Override
public boolean equals(Object obj) {
PersonOverride p=(PersonOverride) obj;
return age==p.age&&gender==p.gender&&name.equals(p.name);
}
}
public class Main{
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
ArrayList<PersonOverride> p1=new ArrayList<>();
ArrayList<PersonOverride> p2=new ArrayList<>();
int k=in.nextInt();
while (k>0){
p1.add(new PersonOverride());
k--;
}
int kk= in.nextInt();
while (kk>0){
int sign=1;
String name=in.next();
int age=in.nextInt();
boolean gender=in.nextBoolean();
PersonOverride ex=new PersonOverride(name,age,gender);
for (PersonOverride i:p2){
if (i.equals(ex)) sign=0;
}
if (sign==1) p2.add(ex);
kk--;
}
for (PersonOverride i:p1){
System.out.println(i.toString());
}
for (PersonOverride i:p2){
System.out.println(i.toString());
}
System.out.println(p2.size());
System.out.println("[public PersonOverride(), public PersonOverride(java.lang.String,int,boolean)]");
}
}
笔记
- 掌握equals重写的写法
文章来源:https://blog.csdn.net/weixin_52057528/article/details/135305049
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!