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服务器通信(比如一个聊天室),对于这 ...
随机推荐
- ECMA-262 Extractions
For the purpose of this article, ECMA-262 refers to ECMAScript® 2017 Language Specification. ECMAScr ...
- HDU——2602Bone Collector(01背包)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- bzoj 1572: [Usaco2009 Open]工作安排Job
Description Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有1000000000个单 ...
- [转] Makefile 基础 (8) —— Makefile 隐含规则
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...
- 关于 ajax 动态返回数据 css 以及 js 失效问题(动态引入JS)
ajax 毕竟是异步的 所以动态加载出来的数据 难免遇到 css 或者 js 失效的问题,所以要动态加载 css ji等文件了 1.公共方法 load //动态加载 js /css function ...
- 【Visual Studio】工程类型选择win32还是x64 ?
1. 如果将Visual Studio的工程类型设置为win32,那么我们开发的程序既能在32位操作系统上运行,也能在64位操作系统上运行. 2. 如果将Visual Studio的工程类型设置为x6 ...
- Sphinx的GEO距离搜索 [转载]
近项目用sphinx做地理搜索,可是结果总是不对,明明很近却搜不到 结果检查sphinx源文件: static inline double sphSqr ( double v ) { return v ...
- git 中遇到的问题
刚创建的github版本库,在push代码时出错: $ git push -u origin masterTo git@github.com:******/Demo.git ! [rejected] ...
- AC日记——城市 洛谷 P1401
题目描述 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最长的边的长度最小,边不能 ...
- 常用工具篇(二)死链接扫描工具–Xenu
一个网站上线一段时间之后,可能出现很多的死链接,死链接就是那些打不开的链接,或者是请求是404的,可能是因为有的文件位置移动了,或者有的功能不好使了,可能会影响我们网的功能,我们就要隔一阵扫描一下网站 ...