java初学者案例用户登录注册.docx

上传人:b****8 文档编号:9563511 上传时间:2023-02-05 格式:DOCX 页数:12 大小:17.60KB
下载 相关 举报
java初学者案例用户登录注册.docx_第1页
第1页 / 共12页
java初学者案例用户登录注册.docx_第2页
第2页 / 共12页
java初学者案例用户登录注册.docx_第3页
第3页 / 共12页
java初学者案例用户登录注册.docx_第4页
第4页 / 共12页
java初学者案例用户登录注册.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

java初学者案例用户登录注册.docx

《java初学者案例用户登录注册.docx》由会员分享,可在线阅读,更多相关《java初学者案例用户登录注册.docx(12页珍藏版)》请在冰豆网上搜索。

java初学者案例用户登录注册.docx

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.test

2集合的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(){

Iteratorit=iterator();//集合本身调用迭代器方法,得到集合迭代器

if(!

it.hasNext())

return"[]";

StringBuildersb=newStringBuilder();

sb.append('[');

for(;;){

Ee=it.next();//e=hello,world,java

sb.append(e==this?

"(thisCollection)":

e);

if(!

it.hasNext())

//[hello,world,java]

returnsb.append(']').toString();

sb.append(',').append('');

}

}

3User.java

packagecn.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(guessNumber>number){

System.out.println("你猜的数据"+guessNumber+"大了");

}elseif(guessNumber

System.out.println("你猜的数据"+guessNumber+"小了");

}else{

System.out.println("恭喜你,"+count+"次就猜中了");

break;

}

}

}

}

5UserDao.java

packagecn.itcast.dao;

importcn.itcast.pojo.User;

/**

*这是针对用户进行操作的接口

*

*

*/

publicinterfaceUserDao{

/**

*这是用户登录功能

*

*@paramusername

*用户名

*@parampassword

*密码

*@return返回登录是否成功

*/

publicabstractbooleanisLogin(Stringusername,Stringpassword);

/**

*这是用户注册功能

*

*@paramuser

*要注册的用户信息

*/

publicabstractvoidregist(Useruser);

}

6UserDaoImpl.java

packagecn.itcast.dao.impl;

importjava.util.ArrayList;

importcn.itcast.dao.UserDao;

importcn.itcast.pojo.User;

/**

*这是用户操作的具体实现类(集合版)

*

*/

publicclassUserDaoImplimplementsUserDao{

//为了让多个方法能够使用同一个集合,就把集合定义为成员变量

//为了不让外人看到,用private

//为了让多个对象共享同一个成员变量,用static

privatestaticArrayListarray=newArrayList();

@Override

publicbooleanisLogin(Stringusername,Stringpassword){

//遍历集合,获取每一个用户,并判断该用户的用户名和密码是否和传递过来的匹配

booleanflag=false;

for(Useru:

array){

if(u.getUsername().equals(username)

&&u.getPassword().equals(password)){

flag=true;

break;

}

}

returnflag;

}

@Override

publicvoidregist(Useruser){

//把用户信息存储集合

//ArrayListarray=newArrayList();

array.add(user);

}

}

7UserTest.java

packagecn.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();

//经过简单的思考,我选择了switch

switch(choiceString){

case"1":

//登录界面,请输入用户名和密码

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;

case"2":

//欢迎界面,请输入用户名和密码

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;

case"3":

default:

System.out.println("谢谢使用,欢迎下次再来");

System.exit(0);

break;

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1