当前位置: 代码迷 >> J2SE >> 关于器皿的使用
  详细解决方案

关于器皿的使用

热度:1184   发布时间:2013-02-25 00:00:00.0
关于容器的使用
user类 里面有个name属性
money类 里面有个money属性

在控制类controller里面

Java code
//添加用户,并初始话费为0元,    public void addUser(String u){                user.setName(u);                money.setMoney(0.0);    }


现在定义了一个容器
Java code
List<User> users = new ArrayList<User>();

想把 前面添加的用户 添加到users容器里面去 没有思路 写到这里就卡住了

Java code
//将用户添加到容器中    public void add(){        for(int i = 0; i < 10; i ++){            users.add(user);        }    }


首先 容器的大小不确定 for循环里的 i < 10 就不科学
还有users.add(user);我也觉得变扭


额 表达能力有问题 我把部分代码都贴上吧

Java code
package com.cn.control;import java.util.ArrayList;import java.util.List;import com.cn.model.Money;import com.cn.model.User;public class Controller {        List<User> users = new ArrayList<User>();    Money money = new Money();    User user = new User();            //查询话费    public void lookAccount(){        System.out.println("账户:" + user.getName());        System.out.println("余额:" + money.getMoney());    }            //添加用户,并初始话费为0元,    public void addUser(String u){                user.setName(u);                money.setMoney(0.0);    }        //将用户添加到容器中    public void add(){        for(int i = 0; i < 10; i ++){            users.add(user);        }    }    }


------解决方案--------------------------------------------------------
这种情况,建议把money属性转移至User类并删除Money类,毕竟money算是你这里场景中User类的一个必不可少的属性,分开来不好。

搞不懂public void add(){
for(int i = 0; i < 10; i ++){
users.add(user);
}
}
这个方法要干嘛?
------解决方案--------------------------------------------------------
上面的代码设计的不好,User之中应该有Money(余额)这个属性
然后数据库端设计money的default value是0.0

如果你一定要按照上面的思路去写的话,代码如下:
(只是这样的设计很不专业)
Java code
import java.util.*;public class Controller {        private Map<String,Money> map = new HashMap<String, Money>();    //初始化查询的Map    public void setUserMessage(User u,Money m){        map.put(u.getUsername(), m);    }        //遍历map    public void getUserMessage(){        Set<String> key = map.keySet();        for(Iterator<String> it = key.iterator();it.hasNext();) {            String username = (String)it.next();            Money m = map.get(username);            System.out.println(username + "的余额是" + m.getMoney() + "元");        }    }        public static void main(String args[]) {        User u = new User();        u.setUsername("zhangsan");                Money m = new Money(0.0f);                Controller c = new Controller();        c.setUserMessage(u, m);                c.getUserMessage();    }    }
------解决方案--------------------------------------------------------
搞不懂楼主在干神马啊、、、
------解决方案--------------------------------------------------------
你的add方法设计有问题,
//将用户添加到容器中
public void add(){
for(int i = 0; i < 10; i ++){
users.add(user);
}
}

应该是
Java code
    //将用户添加到容器中    public void add(User user){        users.add(user);        }
------解决方案--------------------------------------------------------
你这样设计就是一个拥有名字的用户,和一个有钱的现金。
  相关解决方案