package com.sanmao;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> items=new ArrayList<>();
items.add("欢迎你使用 通讯录");
items.add("添加联系人,add");
items.add("删除联系人,delete");
items.add("修改联系人,update");
items.add("显示所有联系人,show");
items.add("寻找联系人,find");
items.add("退出");
TelBookService telBook=new TelBook();
//显示菜单
Menu menu=new Menu(items,telBook);
while (true){
menu.show();
if (menu.Select()){
break;
}
}
}
}
package com.sanmao;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Scanner;
public class Menu {
//菜单项
private List<String> items;
//代理
private Object delegate;
public Menu(List<String> items,Object delegate) {
this.items = items;
this.delegate=delegate;
}
//显示菜单
public void show(){
System.out.println(items.get(0)+":");
for (int i = 1; i < items.size(); i++) {
String str=items.get(i);
String[] strs=str.split(",");
System.out.println(i+"."+strs[0]);
}
System.out.print("请输入选择功能的编号(1-"+(items.size()-1)+"):");
}
//选择功能
public boolean Select(){
Scanner cin=new Scanner(System.in);
String str=cin.nextLine();
str=str.trim();//剔除空格
try {
int n=Integer.parseInt(str);
if (n>0&&n<items.size()){
if (n==items.size()-1)
return true;
else {
String str1=items.get(n);
String[] strs=str1.split(",");
Method method=delegate.getClass().getMethod(strs[1]);
method.invoke(delegate);
}
}else
{
System.out.println("无效的输入!");
}
}catch (Exception e)
{
System.out.println("无效的输入!");
}
return false;
}
}
package com.sanmao;
public class Person {
private String name;
private String telnumber;
public Person(String name, String telnumber) {
this.name = name;
this.telnumber = telnumber;
}
public String getTelnumber() {
return telnumber;
}
public void setTelnumber(String telnumber) {
this.telnumber = telnumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (name != null ? !name.equals(person.name) : person.name != null) return false;
return telnumber != null ? telnumber.equals(person.telnumber) : person.telnumber == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (telnumber != null ? telnumber.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", telnumber='" + telnumber + '\'' +
'}';
}
}
package com.sanmao;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TelBook implements TelBookService{
private List<Person> persons=new ArrayList<>();
private Scanner scanner=new Scanner(System.in);
@Override
public void add() {
System.out.print("请输入这个联系人的姓名:");
String name=scanner.nextLine();
name=name.trim();
if (name.length()<1){
System.out.println("由于你输入了一个无效的姓名,异常退出了添加功能!");
return;
}
System.out.print("请输入这个联系人的电话:");
String tel=scanner.nextLine();
tel=tel.trim();
if (name.length()<1){
System.out.println("由于你输入了一个无效的电话,异常退出了添加功能!");
return;
}
Person person=new Person(name,tel);
persons.add(person);
System.out.println("添加成功");
}
@Override
public void delete() {
System.out.println("delete");
}
@Override
public void update() {
System.out.println("update");
}
@Override
public void show() {
if (persons.size()>0) {
System.out.println("编号\t\t\t姓名\t\t\t电话号码");
for (int i = 0; i < persons.size(); i++) {
Person person=persons.get(i);
System.out.println(i+"\t\t\t"+person.getName()+"\t\t\t"+person.getTelnumber());
}
}
else {
System.out.println("目前还没有联系人");
}
}
@Override
public void find() {
System.out.println("find");
}
}
package com.sanmao;
public interface TelBookService {
public void add();
public void delete();
public void update();
public void show();
public void find();
}
Java通讯录(基于设计模式)
最新推荐文章于 2024-04-23 22:07:59 发布