java面向接口的编程什么意思?什么情况下去用面向接口的编程就是一般不直接写方法,而是定义一些接口,然后当需要使用的时候 , 去实现这些接口 , 接口其实就相当于一种标准,比如动物,猫 , 狗,都有相同的吃的属性,这时就可以定义一个接口,里面有一个吃的方法 。当需要实现这些类的时候,就可以去实现这个接口 。
Java中用set 和map实现这段代码 , 谢谢!1、面向接口(DAO)编程,接口的实现 。
构建User.java实体类,构建UserImpl.java类,实现UserDao接口 , 构建MapDal.java,模拟数据库,Main.java模拟UI,UI只调用UserImpl,UserImpl调用MapDal 。
main.java
package baidu.zhidao;
import java.util.*;
/**
* Main 主方法
* @author bufei
*
*/
public class Main {
public static void main(String[] args) {
int userNum = 9;
// 定义UserList
ListUser list = new ArrayListUser();
for (int i = 0; iuserNum; i++) {
User user = new User();
user.setPassWord("passWord" + i);
user.setUserName("userName" + i);
list.add(user);
}
// 实例化UserImpl
UserImpl userImpl = new UserImpl(list);
// 用户 张三 是否存在
String userName = "张三";
String passWord = "passWord";
User user = new User();
user.setUserName(userName);
user.setPassWord(passWord);
System.out.println("- - - baiduDemo - - -");
// 1、isExist(user)
System.out.println("查找用户 " + userName + "...");
if (userImpl.isExist(user)) {
System.out.println(userName + " 存在!");
} else {
System.out.println(userName + " 不存在!");
}
// 2、addUser
System.out.println("添加用户 " + userName + ",psw= " + passWord + " ...");
userImpl.addUser(user);
// 3、changePassword(userName)
System.out.println("修改密码...");
passWord = "zhangsanpasword";
if (userImpl.changePassword(userName, passWord)) {
System.out.println("修改成功!");
} else {
System.out.println("用户不存在!");
}
//4 selectAll()
list = userImpl.selectAll();
System.out.println("获取全部User:");
for (User userItem : list) {
System.out.println(userItem.getUserName() + "," + userItem.getPassWord());
}
}
}
UserImpl.java
package baidu.zhidao;
import java.util.*;
/**
* UserDao接口实现
* @author bufei
*
*/
public class UserImpl implements UserDao {
private MapDal mapDal;
/**
* 构造器 , 初始化Map数据库
*/
public UserImpl(ListUser list) {
mapDal = new MapDal(list);
}
/**
* 1.判断某个user是否存在
* @param user 用户对象
* @return 返回true/false用户是否存在
*/
public boolean isExist(User user) {
boolean rs = false;
rs = mapDal.isExist(user);
return rs;
}
/**
* 2.添加User
* 题目所给void 返回类型不合理
* @param user
*
* */
public void addUser(User user) {
if (mapDal.addUser(user)) {
System.out.println("添加完成!");
} else {
System.out.println("添加失败!");
}
}
/**
* 3.根据username修改password
* @param username
* @param password
* @return 成功与否
* */
public boolean changePassword(String userName, String password) {
boolean rs = false;
User user = new User();
user.setUserName(userName);
user.setPassWord(password);
rs = mapDal.changePassword(user);
return rs;
}
/**
* 根据用户对象修改密码
* @param user
* @return
*/
public boolean changePassword(User user) {
推荐阅读
- 区块链中本聪,本能区块链技术
- 如何用淘宝网进行推广销售,淘宝网店铺如何推广
- 安卓40版本语音助手下载,安卓手机语音助手大全
- vb.net字符串处理 vb字符串函数大全
- 怎么在gis里由经纬度找到位置,gis经纬网设置
- 比较中等的射击游戏,顶级射击游戏
- 怎么能学会电脑维修电话,3天学会电脑维修
- java代码生成热力图 java图形界面代码生成工具
- 视频号怎么给他隐藏点赞,B站怎么隐藏自己的视频作品