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服务器通信(比如一个聊天室),对于这 ...
随机推荐
- [LOJ#526]「LibreOJ β Round #4」子集
[LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两 ...
- 以Java 8 为基准
1.以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持. 2.内嵌容器包结构调整 为了支持reactive使用场景,内嵌的容器包结构 ...
- javaweb学习总结(十一)——使用Cookie进行会话管理(转)
一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...
- WebRTC VoiceEngine综合应用示例(一)——基本结构分析(转)
把自己这两天学习VoiceEngine的成果分享出来,供大家参考,有什么问题也欢迎大家指出,一起学习一起进步. 本文将对VoiceEngine的基本结构做一个分析,分析的方法是自底向上的:看一个音频编 ...
- android 设置app root权限简单方法
vim frameworks/base/core/java/com/android/internal/os/ZygoteConnection.java +709 private static void ...
- AC日记——乘积最大 洛谷 P1018
题目描述 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得 ...
- UICollectionView的cell创建直接从第三个数据开始问题
实现的效果是这样 大概意思就是第一组没有数据就直接将改组的cell高度变成0效果实现了,但是第二组数据创建cell就出问题了--奇葩问题 * 代码问题在这```-(CGSize)collectionV ...
- 微信小程序之微信支付C#后台(统一下单)
一.微信小程序支付 1.微信小程序端请求支付接口 商户在小程序中先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易后调起支付.具体可以查看接口示例. 接口传入参数示例: <xm ...
- 洛谷——P2296 寻找道路
P2296 寻找道路 题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点 ...
- OS | Process
linux多进程 1. fork()创建进程,创建一份父进程的拷贝:在父进程中返回的是子进程id,在子进程中返回的是0:失败时返回-1: 2. fork()经常和exec()结合,exec() 覆盖了 ...