java初學者案例用戶登錄注冊_第1頁
java初學者案例用戶登錄注冊_第2頁
java初學者案例用戶登錄注冊_第3頁
java初學者案例用戶登錄注冊_第4頁
java初學者案例用戶登錄注冊_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1 用戶登錄注冊案例分析需求:用戶登錄注冊案例。按照如下的操作,可以讓我們更符號面向?qū)ο笏枷階: 有哪些類呢?B: 每個類有哪些東西呢?C: 類與類之間的關系是什么呢?分析:A: 有哪些類呢?用戶類測試類B: 每個類有哪些東西呢?用戶類:成員變量:用戶名,密碼構造方法:無參構造成員方法:getXxx()/setXxx()登錄,注冊假如用戶類的內(nèi)容比較對,將來維護起來就比較麻煩,為了更清晰的分類,我們就把用戶又劃分成了兩類用戶基本描述類成員變量:用戶名,密碼構造方法:無參構造成員方法:getXxx()/setXxx()用戶操作類登錄,注冊測試類:main 方法。C: 類與類之間的關系是什么呢?在

2、測試類中創(chuàng)建用戶操作類和用戶基本描述類的對象,并使用其功能。分包:A: 功能劃分B: 模塊劃分C: 先按模塊劃分,再按功能劃分今天我們選擇按照功能劃分:用戶基本描述類包cn.itcast.pojo用戶操作接口cn.itcast.dao用戶操作類包cn.itcast.dao.impl今天是集合實現(xiàn),過幾天是IO實現(xiàn),再過幾天是GUI實現(xiàn),就業(yè)班我們就是數(shù)據(jù)庫實現(xiàn)用戶測試類cn.itcast.test2 集合的 toString 方法代碼:Collection c = new ArrayList();c.add("hello");c.add("world")

3、;c.add("java");System.out.println(c);為什么c輸出的不是地址值呢?A:Collection c = new ArrayList();這是多態(tài),所以輸出c的 toString() 方法,其實是輸出ArrayList 的 toString()B: 看 ArrayList 的 toString()而我們在ArrayList 里面卻沒有發(fā)現(xiàn)toString() 。以后遇到這種情況,也不要擔心,你認為有,它卻沒有,就應該去它父親里面看看。C:toString() 的方法源碼public String toString() 集合本身調(diào)用迭代器方Ite

4、rator<E> it = iterator(); /法,得到集合迭代器if (! it.hasNext() return ""StringBuilder sb = new StringBuilder();sb.append('');for (;) E e = it.next(); /e=hello,world,java sb.append(e = this ? "(this Collection) e);if (! it.hasNext()/hello, world, java return sb.append('')

5、.toString(); sb.append(',').append(' ');3 User.javapackage cn.itcast.pojo;* 這是用戶基本描述類*/public class User / 用戶名private Stringusername ;/ 密碼private Stringpassword ;public User() public String getUsername() return username ;public void setUsername(String username ) this . username = use

6、rname ;public String getPassword() return password ;public void setPassword(String password ) this . password = password ;4 猜數(shù)字游戲package cn.itcast.game;import java.util.Scanner;/* * 這是猜數(shù)字小游戲*/public class GuessNumber private GuessNumber() public static void start() / 產(chǎn)生一個隨機數(shù)int number = ( int ) (Mat

7、h. random () * 100) + 1;/ 定義一個統(tǒng)計變量int count = 0;while ( true ) / 鍵盤錄入一個數(shù)據(jù)Scanner sc = new Scanner(System. in ); System. out .println( " 請輸入數(shù)據(jù)(1-100) : " );int guessNumber = sc .nextInt();count +;/ 判斷if ( guessNumber > number) guessNumber +guessNumber +次就猜中了" );System. out .println(

8、" 大了 " ); else if ( guessNumber System. out .println(" 小了 " ); else System. out .println(" 你猜的數(shù)據(jù)" +< number) " 你猜的數(shù)據(jù)" +恭喜你," + count +break ;5 UserDao.javapackage cn.itcast.dao;import cn.itcast.pojo.User;/* 這是針對用戶進行操作的接口*/public interface UserDao /* 這是

9、用戶登錄功能* param username* 用戶名* param password* 密碼* return 返回登錄是否成功* /username , Stringpublic abstract boolean isLogin(String password );/* 這是用戶注冊功能* param user* 要注冊的用戶信息*/user );public abstract void regist(User6 UserDaoImpl.javapackage cn.itcast.dao.impl;import java.util.ArrayList;import cn.itcast.dao

10、.UserDao;import cn.itcast.pojo.User;* 這是用戶操作的具體實現(xiàn)類( 集合版)*/public class UserDaoImpl implements UserDao / 為了讓多個方法能夠使用同一個集合,就把集合定義為成員變量/ 為了不讓外人看到,用private/ 為了讓多個對象共享同一個成員變量,用staticprivate static ArrayList<User> array = new ArrayList<User>();Overridepublic boolean isLogin(String username, St

11、ring password) / 遍歷集合,獲取每一個用戶,并判斷該用戶的用戶名和密碼是否和傳遞過來的匹配boolean flag = false;for (User u : array) if (u.getUsername().equals(username)&& u.getPassword().equals(password) flag = true;break; return flag;Override public void regist(User user) / 把用戶信息存儲集合/ ArrayList<User> array = new ArrayLis

12、t<User>(); array.add(user);7 UserTest.javapackage cn.itcast.test;import java.util.Scanner;import cn.itcast.dao.UserDao;import cn.itcast.dao.impl.UserDaoImpl;import cn.itcast.game.GuessNumber;import cn.itcast.pojo.User;/*用戶測試類新增加了兩個小問題A: 多個對象共享同一個成員變量,用靜態(tài)B: 循環(huán)里面如果有switch ,并且在switch 里面有 break,那么

13、結(jié)束的不是循環(huán),而是switch 語句*/ public class UserTest public static void main(String args) while (true) / 歡迎界面,給出選擇項System.out.println(" 歡迎光臨");System.out.println("1登錄");System.out.println("2注冊");System.out.println("3退出");System.out.println(" 請輸入你的選擇:");/ 鍵盤錄入

14、選擇,根據(jù)選擇做不同的操作Scanner sc = new Scanner(System.in);/ 為了后面的錄入信息的方便,我所有的數(shù)據(jù)錄入全部用字符接收String choiceString = sc.nextLine();/ switch 語句的多個地方要使用,我就定義到外面UserDao ud = new UserDaoImpl();/ 經(jīng)過簡單的思考,我選擇了switchswitch (choiceString) case "1":/ 登錄界面,請輸入用戶名和密碼System.out.println(" 登錄界面");System.out.p

15、rintln(" 請輸入用戶名:");String username = sc.nextLine();System.out.println(" 請輸入密碼:");String password = sc.nextLine();/ 調(diào)用登錄功能/ UserDao ud = new UserDaomImpl();boolean flag = ud.isLogin(username, password);if (flag) System.out.println(" 登錄成功,可以開始玩游戲了");System.out.println(&qu

16、ot; 你玩嗎?y/n");while (true) String resultString = sc.nextLine();if (resultString.equalsIgnoreCase("y") / 玩游戲GuessNumber.start();System.out.println(" 你還玩 嗎 ?y/n"); else break;System.out.println(" 謝謝使用,歡迎下次再來");System.exit(0);/ break; / 這里寫 break ,結(jié)束的是switch else Syst

17、em.out.println(" 用戶名或者密碼有誤,登錄失敗 "); break;case "2":/ 歡迎界面,請輸入用戶名和密碼System.out.println(" 注冊界面");System.out.println(" 請輸入用戶名:");String newUsername = sc.nextLine();System.out.println(" 請輸入密碼:");String newPassword = sc.nextLine();/ 把用戶名和密碼封裝到一個對象中User user = new User();user.setUsername(newUsername);use

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論