黑马程序员技术交流社区

标题: 回忆以前学的 [打印本页]

作者: wj456123    时间: 2015-7-22 23:50
标题: 回忆以前学的
1:“时间”在项目中的运用(大家不必太纠结于此,就业班会学习的)
2:Date(理解 请自己补齐)
        (1)日期类。
                构造方法:
                Date():默认指当前系统时间。
                Date(long time):根据给定的毫秒值生成一个时间。
        (2)完成如下操作(日期和毫秒值的转换)
                Date --> long

                        Date d = new Date();
                         long time = d.getTime();

                long --> Date

                        long time = ???;
                         Date d = new Date(time);
                        或
                         Date d2 = new Date();
                         d2.setTime(time);

        (3)DateFormat类(日期和字符串的转换)
                String --> Date

                        public Date parse(String source)
                        注意:如果是字符串到日期,你指定的格式必须和字符串的格式匹配。
  
                          2013-12-12
                          yyyy-MM-dd
  
                          2013/11/11
                        yyyy/MM/dd

                Date --> String

                        public final String format(Date date)
                        需要自己指定格式,常见的格式:
                                                  yyyy年MM月dd日 HH:mm:ss
                                                yyyy年MM月dd日
                                                HH:mm:ss               
                                                yyyy-MM-dd HH:mm:ss

2:Calendar(理解)

        (1)Calendar是日历类,它可以获取任意指定日历值,然后自由组合。
                Calendar是抽象类不能实例化,但是他提供了获取其实例的方法
                Calendar c = Calendar.getInstance();// 多态

        (2)成员方法:
                get(日历字段):根据给定的日历字段获取值

                        int year = c.get(Calendar.YEAR);
                        int month = c.get(Calendar.MONTH);
                        int date = c.get(Calendar.DATE);
                        int hour = c.get(Calendar.HOUR_OF_DAY);
                        int minute = c.get(Calendar.MINUTE);
                        int second = c.get(Calendar.SECOND);
                        String s = year + "年" + (month + 1) + "月" + date + "日" + " " + hour
                                + ":" + minute + ":" + ((second>9)?second:"0"+second);

                set(年,月,日):给日历设定指定的年,月,日       
                add(日历字段,值):给指定的日历字段添加或者减去给定的值。取决于值的正负。

        (3)案例:请说出任意一年的2月份是多少天。
                Calendar c = Calendar.getInstance();
                Scanner sc = new Scanner(System.in);
                int year = sc.nextInt();

                c.set(year, 2, 1);// 把日期设置为2013年3月1日
                c.add(Calendar.DATE, -1);// 把日期往前推1日
                System.out.println(c.get(Calendar.DATE));

3:对象数组(理解即可)
        学生数组的引入,是为了引入即将学习的集合,(学生数组是不是只能存学生啊?数组是不是必须固定长度啊?那么打破这些规则的话,需要用什么存呢?答案:集合)

4:案例:对象数组改进登陆注册
        分包:  cn.itcast.dao
                        -UserDao.java
                cn.itcast.dao.impl
                        -UserDaoImple.java
                cn.itcast.pojo
                        -User.java
                cn.itcast.test
                        -UserTest.java

        UserDao:操作接口(这儿有人不理解为啥要写个这个接口呢?是因为有好多的大公司里面,这种设计架构的工作已经由架构师做好了他规定了这个操作类里面就这增删改查四个方法,并规定了方法的名字怎么写,
                他就分配给专门的人员A来做test类,调用的时候就让A调用写架构师说的几个方法
                又由专门的人B来做操作类,那么万一做操作类的人写一个方法的时候写错了其中一个方法名字,自己又没意识到,那么这时候A调用方法的时候,报错了
                公司这么大,沟通成本很高,那么这时候就需要架构师提供一个借口给A和B,B呢你就给我实现这个接口,A呢你就调用接口的方法,那么这时候还会发生上面的情况吗?)
                (在这儿,如果大家还不理解,也没有关系,不必太纠结,以后我还会给大家提,就业班的时候也会天天做这个)
        UserDaoImpl:操作类实现操作接口
        User:存储学生数据的对象(可以存储 用户名,密码,邮箱等等)
        UserTest:测试类


        代码:只给大家写一个UserDaoImpl和UserTest,其他的比较简单
        package cn.itcast.dao.impl;

        import cn.itcast.dao.UserDao;
        import cn.itcast.pojo.User;

        /**
         * 用户操作实现类
         *
         * @author itcast 如何实现呢? 如果是注册一个用户,用User保存即可。 但是,注册肯定不止一个用户,所以我们得想想用什么存储?
         *         目前我们学过的能够存储的:对象,对象数组。 通过分析,我们最终选择对象数组。 问题:用对象数组,就得定义数组,定义数组,就得知道长度。
         *         不知道,我也不知道。所以,对象数组不够好。最终选择集合。 不过,集合还没学呢,所以,我们还是只能使用对象数组。 自己给一个固定长度:5
         */
        public class UserDaoImpl implements UserDao {
                // 定义成员变量的数组
                private static User[] users = new User[5];
                private static int index = 0;

                @Override
                public boolean isLogin(String username, String password) {
                        /*
                         * 遍历数组,获取到每一个对象,然后再拿对象的用户名和密码和传递过来的用户名和密码进行比较
                         */
                        boolean flag = false;

                        for (int x = 0; x < users.length; x++) {
                                User user = users[x];
                                // 判断用户是否为null
                                if (user != null) {
                                        if (user.getUsername().equals(username)
                                                        && user.getPassword().equals(password)) {
                                                flag = true;
                                                break;
                                        }
                                }
                        }

                        return flag;
                }

                @Override
                public void regist(User user) {
                        users[index++] = user;
                }
        }

        ----------------------------------------------------------------

        package cn.itcast.test;

        import java.util.Scanner;

        import cn.itcast.dao.UserDao;
        import cn.itcast.dao.impl.UserDaoImpl;
        import cn.itcast.pojo.User;

        public class UserTest {
                public static void main(String[] args) {
                        while (true) {
                                System.out.println("欢迎来到itcast");
                                System.out.println("1:登录");
                                System.out.println("2:注册");
                                System.out.println("3:退出");
                                System.out.println("请选择:");
                                Scanner sc = new Scanner(System.in);
                                String line = sc.nextLine();
                                switch (line) {
                                case "1":
                                        System.out.println("欢迎来到登录界面");
                                        System.out.println("请输入用户名:");
                                        String username = sc.nextLine();
                                        System.out.println("请输入密码:");
                                        String password = sc.nextLine();
                                        // 多态用法
                                        // UserDao ud = new UserDaoImpl();
                                        // 具体类用法
                                        UserDaoImpl udi = new UserDaoImpl();
                                        boolean flag = udi.isLogin(username, password);
                                        if (flag) {
                                                System.out.println("开始玩游戏吧");
                                                System.exit(0);
                                        } else {
                                                System.out.println("登录失败,返回主界面");
                                        }
                                        break;
                                case "2":
                                        System.out.println("欢迎来到注册界面");
                                        // 键盘录入用户信息
                                        System.out.println("请输入用户名:");
                                        String newUsername = sc.nextLine();
                                        System.out.println("请输入密码:");
                                        String newPassword = sc.nextLine();
                                        System.out.println("请输入邮箱:");
                                        String newEmail = sc.nextLine();
                                        System.out.println("请输入电话:");
                                        String newPhone = sc.nextLine();

                                        // 把数据用对象进行封装
                                        User user = new User();
                                        user.setUsername(newUsername);
                                        user.setPassword(newPassword);
                                        user.setEmail(newEmail);
                                        user.setPhone(newPhone);

                                        // 创建用户操作类对象
                                        UserDaoImpl newUdi = new UserDaoImpl();

                                        // 调用注册方法
                                        newUdi.regist(user);
                                        System.out.println("注册成功");
                                        break;
                                case "3":
                                        // System.out.println("谢谢你的使用");
                                        // System.exit(0);
                                        // break;
                                default:
                                        System.out.println("谢谢你的使用");
                                        System.exit(0);
                                        break;
                                }
                        }
                }

        }
       
作者: 芬芬老师    时间: 2015-7-24 10:52
bangbangda~~
作者: 0618张军    时间: 2015-7-24 23:40
挺详细的,赞一个吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2