java模拟而一个电话本操作
哈哈。大家平时都在使用电话本。以下使用java来模拟而一个简单的电话本吧...
首先给出联系人的抽象类
package net.itaem.po; /**
*
* 电话人的信息
* */
public class User { private String name;
private String phoneNumber;
private String companyName;
private String email;
private String address;
private String birthday; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User [name=" + name + ", phoneNumber=" + phoneNumber
+ ", companyName=" + companyName + ", email=" + email
+ ", address=" + address + ", birthday=" + birthday + "]";
}
public User(String name, String phoneNumber, String companyName,
String email, String address, String birthday) {
this.name = name;
this.phoneNumber = phoneNumber;
this.companyName = companyName;
this.email = email;
this.address = address;
this.birthday = birthday;
} public User(String name, String phoneNumber){
this.name = name;
this.phoneNumber = phoneNumber;
} }
给出操作数据库的UserDao。这里仅仅是简单的模拟操作...所以使用打印来提示操作结果
以下给出工具类,用来获得MVC中的VIEW的请求内容
package net.itaem.tool; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class GetInput {
private static BufferedReader bufReader; static{
bufReader = new BufferedReader(new InputStreamReader(System.in));
} public static String getInputString(String info) throws IOException{
System.out.println(info);
String result = null;
result = bufReader.readLine(); //读取内存输入的一行数据
return result;
} public static void main(String[] args) throws IOException{
}
}
以下给出控制类,相当于MVC中的C,Controller,这个类负责和DAO,VIEW,TOOL等其他类交互...
package net.itaem.operate; import java.io.IOException; import net.itaem.dao.UserDao;
import net.itaem.po.User;
import net.itaem.tool.GetInput; /**
* 操作类
* */
public class Operate { public Operate(){
start();
} public void start(){
try {
while(true){ //一直执行
run();
}
} catch (IOException e) {
e.printStackTrace(); }
} private void run() throws IOException{
System.out.println("======================电话本==================="); System.out.println("1查看全部联系人");
System.out.println("2添加联系人");
System.out.println("3删除联系人");
System.out.println("4搜索联系人");
System.out.println("5退出"); String choose = GetInput.getInputString("输入你的选择");
char choice = choose.toCharArray()[0];
switch(choice){
case '1':
System.out.println(UserDao.getInstance().findAll()); //输出全部电话本用户
break;
case '2':
UserDao.getInstance().add(new User(GetInput.getInputString("输入名字"),
GetInput.getInputString("输入电话号码")));
break;
case '3':
UserDao.getInstance().delete(new User(GetInput.getInputString("输入名字"),
GetInput.getInputString("输入电话号码")));
break;
case '4':
System.out.println(UserDao.getInstance().findUsersByKeyword(GetInput.getInputString("输入要查询的keyword")));
break;
case '5':
exit();
break;
default:
System.out.println("sorry your input was wrong, please input 1、2、3、4");
}
} private void exit(){
System.exit(0); //退出
} public static void main(String[] args) {
new Operate().start();
}
}
详细的程序执行结果大家能够自己測试下,或者读读代码看看也应该能够明确...
以下是类图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDQ2OTAwMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
总结:这个模拟并没有什么太大的难度。可是重点就是使用面向对象的思想去设计,然后各个类之间达到解耦。
java模拟而一个电话本操作的更多相关文章
- Qt入门(5)——用Qt控件创建一个电话本界面
具体实现步骤: 一.首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件 要注意其中各个空间对应的名称修改好 二.新建一个Qt应 ...
- C语言实现电话本 动态开辟 信息存储于文件
下面是我用C写的一个电话本小项目,实现的功能有:添加 删除 修改 查找 排序 清空 显示,功能还是比较全的,内存也是动态开辟的.能存储于本地,能从本地读出并显示 头文件部分代码,contact.h: ...
- BZOJ 4175: 小G的电话本 SAM+FFT
4175: 小G的电话本 Time Limit: 45 Sec Memory Limit: 256 MBSubmit: 195 Solved: 48[Submit][Status][Discuss ...
- 浏览器与服务器交互原理以及用java模拟浏览器操作v
浏览器应用服务器JavaPHPApache * 1,在HTTP的WEB应用中, 应用客户端和服务器之间的状态是通过Session来维持的, 而Session的本质就是Cookie, * 简单的讲,当浏 ...
- 一个电商项目的Web服务化改造6:单元测试4步走,构造数据、执行操作、断言、回滚
最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA. 有点挑战,做完了,会有很大进步. 单元测试,在很早之前的文章已经介绍过. 可以在这里看到相关的 ...
- 重学 Java 设计模式:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 黎明前的坚守,的住吗? 有人举过这样一个例子,先给你张北大的录 ...
- 用java中的Arraylist实现电话本系统管理
大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...
- 使用Java模拟一个简单的Dos学生成绩管理系统:
使用Java模拟学生成绩管理系统... ------------------- 学生成绩管理系统:需要实现的功能:1.录入学生的姓名和成绩2.显示列表.列表中包括学生姓名与成绩3.显示最高分.最低分的 ...
- websocket通信 实现java模拟一个client与webclient通信
发文原由: 熟悉socket通信的同学,对于socket模拟server与client,实现相互通信, 或者使用websocket与java模拟的websocket服务器通信(比如一个聊天室),对于这 ...
随机推荐
- HDU——1395 2^x mod n = 1(取模运算法则)
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 算法复习——背包dp
1.01背包 二维递推式子: 代码: ;i<=n;i++) ;x--) ][x-w[i]]+c[i],f[i-][x]); ][x]; printf("%d",f[n][m] ...
- Linux 之 LNMP服务器搭建-PHP
LNMP服务器搭建-PHP 参考教程:[千峰教育] 安装: (1)解压源码包 cd /lnmp/srctar -jxvf php-7.3.2.tar.bz2cd php-7.3.2 (2)配置选项 . ...
- hdu 5400(思路题)
Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- LeetCode OJ--Merge Two Sorted Lists
http://oj.leetcode.com/problems/merge-two-sorted-lists/ 有序链表的归并排序 #include <iostream> using na ...
- 如何获取MAC的进程数
参考链接: https://www.cnblogs.com/watchdatalearn2012620/p/3182477.html https://segmentfault.com/q/101000 ...
- 什么情况下应该使用Web Service?
现在我将列举三种情况,在这三种情况下,你将会发现使用Web service会带来极大的好处.此后,我还会举出不应该使用Web service的一些情况. 跨越防火墙的通信 如果你的应用程序有成千上万的 ...
- 可能是全网最详细的express--middleware
写在前面 hello,小伙伴们,我是你们的pubdreamcc,本篇博文出至于我的GitHub仓库node学习教程资料,欢迎小伙伴们点赞和star,你们的点赞是我持续更新的动力. GitHub仓库地址 ...
- BZOJ——2134: 单选错位
http://www.lydsy.com/JudgeOnline/problem.php?id=2134 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: ...
- java多线程04----------final和static
final和static关键字 final关键字 1.final关键字在单线程中的特点: 1)final修饰的静态成员:必须在进行显示初始化或静态代码块赋值,并且仅能赋值一次. 2)final修饰的类 ...