您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > java初学者案例用户登录注册
1用户登录注册案例分析需求:用户登录注册案例。按照如下的操作,可以让我们更符号面向对象思想A:有哪些类呢?B:每个类有哪些东西呢?C:类与类之间的关系是什么呢?分析:A:有哪些类呢?用户类测试类B:每个类有哪些东西呢?用户类:成员变量:用户名,密码构造方法:无参构造成员方法:getXxx()/setXxx()登录,注册假如用户类的内容比较对,将来维护起来就比较麻烦,为了更清晰的分类,我们就把用户又划分成了两类用户基本描述类成员变量:用户名,密码构造方法:无参构造成员方法:getXxx()/setXxx()用户操作类登录,注册测试类:main方法。C:类与类之间的关系是什么呢?在测试类中创建用户操作类和用户基本描述类的对象,并使用其功能。分包:A:功能划分B:模块划分C:先按模块划分,再按功能划分今天我们选择按照功能划分:用户基本描述类包cn.itcast.pojo用户操作接口cn.itcast.dao用户操作类包cn.itcast.dao.impl今天是集合实现,过几天是IO实现,再过几天是GUI实现,就业班我们就是数据库实现用户测试类cn.itcast.test2集合的toString方法代码:Collectionc=newArrayList();c.add(hello);c.add(world);c.add(java);System.out.println(c);为什么c输出的不是地址值呢?A:Collectionc=newArrayList();这是多态,所以输出c的toString()方法,其实是输出ArrayList的toString()B:看ArrayList的toString()而我们在ArrayList里面却没有发现toString()。以后遇到这种情况,也不要担心,你认为有,它却没有,就应该去它父亲里面看看。C:toString()的方法源码publicStringtoString(){IteratorEit=iterator();//集合本身调用迭代器方法,得到集合迭代器if(!it.hasNext())return[];StringBuildersb=newStringBuilder();sb.append('[');for(;;){Ee=it.next();//e=hello,world,javasb.append(e==this?(thisCollection):e);if(!it.hasNext())//[hello,world,java]returnsb.append(']').toString();sb.append(',').append('');}}3User.javapackagecn.itcast.pojo;/***这是用户基本描述类***/publicclassUser{//用户名privateStringusername;//密码privateStringpassword;publicUser(){}publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}4猜数字游戏packagecn.itcast.game;importjava.util.Scanner;/***这是猜数字小游戏***/publicclassGuessNumber{privateGuessNumber(){}publicstaticvoidstart(){//产生一个随机数intnumber=(int)(Math.random()*100)+1;//定义一个统计变量intcount=0;while(true){//键盘录入一个数据Scannersc=newScanner(System.in);System.out.println(请输入数据(1-100):);intguessNumber=sc.nextInt();count++;//判断if(guessNumbernumber){System.out.println(你猜的数据+guessNumber+大了);}elseif(guessNumbernumber){System.out.println(你猜的数据+guessNumber+小了);}else{System.out.println(恭喜你,+count+次就猜中了);break;}}}}5UserDao.javapackagecn.itcast.dao;importcn.itcast.pojo.User;/***这是针对用户进行操作的接口***/publicinterfaceUserDao{/***这是用户登录功能**@paramusername*用户名*@parampassword*密码*@return返回登录是否成功*/publicabstractbooleanisLogin(Stringusername,Stringpassword);/***这是用户注册功能**@paramuser*要注册的用户信息*/publicabstractvoidregist(Useruser);}6UserDaoImpl.javapackagecn.itcast.dao.impl;importjava.util.ArrayList;importcn.itcast.dao.UserDao;importcn.itcast.pojo.User;/***这是用户操作的具体实现类(集合版)**/publicclassUserDaoImplimplementsUserDao{//为了让多个方法能够使用同一个集合,就把集合定义为成员变量//为了不让外人看到,用private//为了让多个对象共享同一个成员变量,用staticprivatestaticArrayListUserarray=newArrayListUser();@OverridepublicbooleanisLogin(Stringusername,Stringpassword){//遍历集合,获取每一个用户,并判断该用户的用户名和密码是否和传递过来的匹配booleanflag=false;for(Useru:array){if(u.getUsername().equals(username)&&u.getPassword().equals(password)){flag=true;break;}}returnflag;}@Overridepublicvoidregist(Useruser){//把用户信息存储集合//ArrayListUserarray=newArrayListUser();array.add(user);}}7UserTest.javapackagecn.itcast.test;importjava.util.Scanner;importcn.itcast.dao.UserDao;importcn.itcast.dao.impl.UserDaoImpl;importcn.itcast.game.GuessNumber;importcn.itcast.pojo.User;/***用户测试类***新增加了两个小问题A:多个对象共享同一个成员变量,用静态*B:循环里面如果有switch,并且在switch里面有break,那么结束的不是循环,而是switch语句**/publicclassUserTest{publicstaticvoidmain(String[]args){//为了能够回来while(true){//欢迎界面,给出选择项System.out.println(--------------欢迎光临--------------);System.out.println(1登录);System.out.println(2注册);System.out.println(3退出);System.out.println(请输入你的选择:);//键盘录入选择,根据选择做不同的操作Scannersc=newScanner(System.in);//为了后面的录入信息的方便,我所有的数据录入全部用字符接收StringchoiceString=sc.nextLine();//switch语句的多个地方要使用,我就定义到外面UserDaoud=newUserDaoImpl();//经过简单的思考,我选择了switchswitch(choiceString){case1://登录界面,请输入用户名和密码System.out.println(--------------登录界面--------------);System.out.println(请输入用户名:);Stringusername=sc.nextLine();System.out.println(请输入密码:);Stringpassword=sc.nextLine();//调用登录功能//UserDaoud=newUserDaomImpl();booleanflag=ud.isLogin(username,password);if(flag){System.out.println(登录成功,可以开始玩游戏了);System.out.println(你玩吗?y/n);while(true){StringresultString=sc.nextLine();if(resultString.equalsIgnoreCase(y)){//玩游戏GuessNumber.start();System.out.println(你还玩吗?y/n);}else{break;}}System.out.println(谢谢使用,欢迎下次再来);System.exit(0);//break;//这里写break,结束的是switch}else{System.out.println(用户名或者密码有误,登录失败);}break;case2://欢迎界面,请输入用户名和密码System.out.println(--------------注册界面--------------);System.out.println(请输入用户名:);StringnewUsername=sc.nextLine();System.out.println(请输入密码:);StringnewPassword=sc.nextLine();//把用户名和密码封装到一个对象中Useruser=newUser();user.setUsername(newUsername);user.setPassword(newPassword);//调用注册功能//多态//UserDaoud=newUserDaoImpl();//具体类使用//UserDaoImpludi=newUserDaoImpl();ud.regist(user);System.out.println(注册成功);break;case3:default:System.out.println(谢谢使用,欢迎下次再来);System.exit(0);break;}}}}
本文标题:java初学者案例用户登录注册
链接地址:https://www.777doc.com/doc-5243554 .html