java模拟而一个电话本操作
2014-05-06 10:03
344 查看
哈哈,大家平时都在使用电话本,下面使用java来模拟而一个简单的电话本吧...
首先给出联系人的抽象类
给出操作数据库的UserDao,这里只是简单的模拟操作...所以使用打印来提示操作结果
下面给出工具类,用来获得MVC中的VIEW的请求内容
下面给出控制类,相当于MVC中的C,Controller,这个类负责和DAO,VIEW,TOOL等其它类交互...
具体的程序运行结果大家可以自己测试下,或者读读代码看看也应该可以明白...
下面是类图:
总结:这个模拟并没有什么太大的难度,但是重点就是使用面向对象的思想去设计,然后各个类之间达到解耦。
首先给出联系人的抽象类
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("输入要查询的关键字"))); 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(); } }
具体的程序运行结果大家可以自己测试下,或者读读代码看看也应该可以明白...
下面是类图:
总结:这个模拟并没有什么太大的难度,但是重点就是使用面向对象的思想去设计,然后各个类之间达到解耦。
相关文章推荐
- java模拟而一个电话本操作
- 模拟Ping操作的一个Java类
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- 一个用java模拟ATM操作的小程序
- Java模拟链表操作引发对Java传引用的思考实践
- Java模拟POST表单提交HttpClient操作
- Mockito一个用于Java开发的伟大的模拟框架
- javaIO_将一个目录下的文件拷贝到另一个目录下(边读边写操作)
- java 操作MySQL数据库的一个例子,包括表字段,类型,编码格式,表的所有值读取
- java文件操作的一个小实例
- java 使用new新建一个对象时的操作过程
- Mockito:一个强大的用于Java开发的模拟测试框架
- 一个封装了数据库大部分操作的JavaBean
- Java构造时成员初始化的陷阱(Java中的声明和初始化不是一个原子操作)
- java模拟并发操作
- vbs模拟Java Robot操作键盘
- Java Web 中防止同时操作一个数据引起错误
- 在DOS界面操作一个java的Demo
- 撸了一个库:绕过Java Heap操作图片,完全避免OOM
- 如何仅用递归函数和栈操作逆序一个栈(java实现)