
正文
java快速set代码 java中set和get的快捷键
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java中用set 和map实现这段代码,谢谢!
1、面向接口(DAO)编程java快速set代码,接口java快速set代码的实现。
构建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; i userNum; 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("修改成功java快速set代码!");
} else {
System.out.println("用户不存在java快速set代码!");
}
// 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) {
return mapDal.changePassword(user);
}
/**
* 4.得到所有的User,用List封装
* @return 从数据库查询到所有的User
* */
public ListUser selectAll() {
return mapDal.selectAll();
}
}
MapDal.java
package baidu.zhidao;
import java.util.*;
/**
* MapDml 用map模拟数据库,初始化生成一些User
* 单例模式,避免数据不同步
* @author bufei
*
*/
public class MapDal {
/** list中存map,实在绕得很,直接存User也是可以 */
public static ListMapString, String userMapList = new ArrayListMapString, String();
/**
* 初始化,有参构造器
* 构造Map map,存储全部的userName,passWord,模拟数据库
*
*/
public MapDal(ListUser list) {
for (User user : list) {
Map userMap = new HashMapString, String();
userMap.put(user.getUserName(), user.getPassWord());
userMapList.add(userMap);
}
}
/**
* 无参构造器
* */
public MapDal() {
}
/**
*
* @param user
* @return
*/
public boolean isExist(User user) {
boolean rs = false;
//遍历userMapList 查找用户是否存在
for (MapString, String map : userMapList) {
// 找到该map
if (map.get(user.getUserName()) != null) {
rs = true;
}
}
return rs;
}
/**
* addUser,userName已存在则无法加入
* @param user
* @return boolean
*/
public boolean addUser(User user) {
boolean rs = false;
//遍历userMapList 查找用户是否存在
for (MapString, String map : userMapList) {
// 找到该map,已经存在,无法添加
if (map.get(user.getUserName()) != null) {
return rs;
}
}
if (!rs) {
MapString, String userMap = new HashMapString, String(8);
userMap.put(user.getUserName(), user.getPassWord());
userMapList.add(userMap);
rs = true;
}
return rs;
}
/**
* deleteUser
* @return
*/
public boolean deleteUser() {
boolean rs = false;
return rs;
}
/**
* changePassword
* @param user
* @return
*/
public boolean changePassword(User user) {
boolean rs = false;
// 定义遍历索引
int i = 0;
//遍历userMapList 查找用户是否存在
for (MapString, String map : userMapList) {
// 找到该map,remove,再次存入新的
if (map.get(user.getUserName())!=null) {
userMapList.remove(i);
//hashmap 初试默认值 0.75-16
Map userMap = new HashMapString, String(8);
userMap.put(user.getUserName(), user.getPassWord());
userMapList.add(userMap);
rs = true;
}
i++;
}
return rs;
}
/**
* selectAll()
*
* @return 返回全体user
*/
public ListUser selectAll() {
ListUser list = new ArrayListUser();
//遍历map
for (MapString, String userMap : userMapList) {
User user = new User();
//map访问需要使用Map.Entry
//entry 需要Set.iterator().next()
Set entriSet = userMap.entrySet();
IteratorMap.EntryString, String iterator = entriSet.iterator();
if (iterator.hasNext()) {
// 此时entry 是 Object
Map.EntryString, String entry = iterator.next();
user.setUserName(entry.getKey().toString());
user.setPassWord(entry.getValue().toString());
list.add(user);
}
}
return list;
}
}
2、运行效果
相关问答
Q1: java实体类里面怎么用快捷方式生成get,set函数
生成步骤:在myeclipse中按住shift+alt+s,选择 generate getters and setters,选择要设置的属性,即可自动生成 get和set方法。
java实体类:实体类就是一个拥有Set和Get方法的类。实体类通常总是和数据库之类的(所谓持久层数据)联系在一起。这种联系是借由框架(如Hibernate)来建立的。实体类主要是作为数据管理和业务逻辑处理层面上存在的类别; 它们主要在分析阶段区分
实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。
Q2: 在java中,set和get方法什么时候用?
get()和set()有一个好处java快速set代码,当输入.get(.set)时就能显示所有的属性。把所有设置都归纳起来,对于外部的使用都方便而已。
1、灵活性
比如我们有一个Person类,我们给它设置一个属性name,但是我们希望在取名字的时候,不是只显示名字,而是把名字按我们的要求输出,比如”我的名字叫XX”,代码如下:
public class Person {
private String name;
public String getName() {
return "我的名字叫" + name;
}
public void setName(String name) {
this.name = name;
}
}
如上代码,以后我们只要定义一个person对象,并给java快速set代码他setName(xx),再getName的时候,就会显示我的名字叫XX。
2、安全性。
比如我们的操作系统在新建用户或在共享文件的时候,经常会提示对针对某个用户的权限是什么,是只读还是只写还是可读写,这里的读写就好比get/set。
对于类来说,如果不使用set/get方法,直接用public定义某个属性,那么这个属性是可读可写的,如果java快速set代码你希望一个类的某个属性是只能读取,不能写入的时候,上面用public定义某个属性就不能满足了,但是我们可以使用private定义属性,再定义一个get方法,但是不定义set方法来实现。反之,只定义set,不定义get则表示该属性是只写不能读的。如下列代码:
public class Circle {
private double radius;
private double pai = 3.14;
public double getPai() {
return pai;
}
public void setRadius(double radius) {
this.radius = radius;
}
/**
* 计算周长
*/
public double getC() {
return 2*pai*radius;
}
}
我们定义了一个圆类,定义了属性半径和pai,半径我只提供写的方法,但是不提供读,而pai只提供读,但不能写,并提供了一个计算周长的方法getC。在实际项目中,对一些类的设计时,严谨的设计是要考虑哪些类是只读或是只写的。
Q3: 关于java中set和get的问题。详细看下面代码!
没明白你问的第一个问题是什么意思,
第二个问题:this关键字指的是对象本身,this.drivername 指的是你在上面定义的全局变量drivername, “=”号后面的drivername是你SET方法里传递的参数名,传值过程就是调用这个SET方法的时候,会传递进来一个drivername参数,把这个drivername的值赋值给你定义的全局变量的drivername。换种写法你就能一目了然了,
public void setDrivername(String str) //这里的参数名改成str,
{
this.drivername=str;
}
Q4: JAVA中的代码Set entrySet = map.entrySet();
右侧java快速set代码:map.entrySet()是调用map对象java快速set代码的一个entrySet成员方法java快速set代码,把map转换成集合类型。
左侧:SetMap.EntryK,V entrySet是定义变量entrySet,其类型为一个集合,集合的元素类型是什么呢java快速set代码?是包围的Map.EntryK,V
关于java快速set代码和java中set和get的快捷键的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







