admin管理员组文章数量:1530028
一、
【问题描述】编程实现如图所示的类间关联关系(双向关联)
【输入形式】
输入分4行,
第1行:联系人ID 联系人姓名
第2行:第一个联系电话号码 联系电话类型
第3行:第二个联系电话号码 联系电话类型
第4行:第三个联系电话号码 联系电话类型
【输出形式】
见样例输出
【样例输入】
123 xiaoyu
87542222 office
87558755 home
1397890678 mobile
【样例输出】
ContactName:xiaoyu PhoneNumber:87542222 type:office
ContactName:xiaoyu PhoneNumber:87558755 type:home
ContactName:xiaoyu PhoneNumber:1397890678 type:mobile
Contact of the second phone:xiaoyu
代码实现:
//Contact.java
package practice_6;
import java.util.ArrayList;
public class Contact {
//声明属性变量
private int contactID;
private String name;
private boolean isFreqContact;//不知道这个变量要怎么用
private ArrayList<Phone> phoneArray;
public Contact(int ID,String name){
contactID = ID;
this.name = name;
phoneArray = new ArrayList<Phone>();//此处Phone可以省略
//动态数组声明方式:
//ArrayList<数组元素类型> 变量名 = new ArrayList<>(int num);
//num 表示初始长度,可不写
}
//重写toString方法
public String toString(){
String info,base;
base = "ContactName:"+name+" "+"PhoneNumber:";
info = base+phoneArray.get(0).getNum()+" type:"+phoneArray.get(0).getType()+"\n"+
base+phoneArray.get(1).getNum()+" type:"+phoneArray.get(1).getType()+"\n"+
base+phoneArray.get(2).getNum()+" type:"+phoneArray.get(2).getType()+"\n"+
"Contact of the second phone:"+name;
return info;
}
public void addPhone(Phone aPhone) {
phoneArray.add(aPhone);
}
}
//Phone.java
package practice_6;
public class Phone {
private String num;
private String type;
private Contact aContact;//将电话与联系人关联
public Phone(String num,String type){
this.num = num;
this.type = type;
}
public void setaContact(Contact aContact) {
this.aContact = aContact;
}
//在Contact的toString里要调用电话号码num和类型type,
//要用get标准方法调用(private变量)
public String getNum() {
return num;
}
public String getType() {
return type;
}
public Contact getaContact() {
return aContact;
}
}
//Test.java
package practice_6;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
//新联系人
Contact theContact = new Contact(sc.nextInt(),sc.next());
for (int i = 0; i < 3; i++) {
//新电话
Phone phone = new Phone(sc.next(),sc.next());
theContact.addPhone(phone);
//将电话号码与电话所有人关联
phone.setaContact(theContact);
}
//这里隐式调用了toString
System.out.println(theContact);
}
}
输出显示:
123 xiaoyu
87542222 office
87558755 home
1397890678 mobile
ContactName:xiaoyu PhoneNumber:87542222 type:office
ContactName:xiaoyu PhoneNumber:87558755 type:home
ContactName:xiaoyu PhoneNumber:1397890678 type:mobile
Contact of the second phone:xiaoyu进程已结束,退出代码0
版权声明:本文标题:2023年民大22级电信Java 练习6类间双向关联关系的实现-Contact与Phone类 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1726640544a1079588.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论