1、1目录目录 .1第一章 J2SE 篇 .21.1 Scanner 与 IO.21.2 字符串判断 .41.3 基本验证 .51.4 面向对象 1.61.5 面向对象 2.101.6 面向对象 3.161.7 多线程实现密码不显示 .182第一章 J2SE 篇1.1 Scanner 与 IO Scanner版 本:1.1.1知识点:Scanner 的基本用法,java 基本语法说 明:主要练习使用 Scanner 来读取用户输入的内容,输入用户名 和 密码,最后打印出欢迎信息。代码实现:package com.icar.login.main;import java.util.Scanner;/*
2、 author zhhy*login1.1 scanner 来读入输入*/public class LoginScanner public static void main(String args) Scanner scanner =new Scanner(System.in);System.out.print(“请输入用户名“);String username = scanner.nextLine();/读取输入的一行System.out.print(“请输入密码“);String password = scanner.nextLine();System.out.println(“欢迎你,“
3、+username);效果图:3 IO版 本:1.1.2知识点:BufferedReader 的应用,java 基本语法说 明:主要利用 IO 流来读取键盘输入的内容,输入用户名和密码, 最后显示欢迎代码实现:package com.icar.login.main;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/* author zhhy* login1.1 io 来读入输入*/public class LoginIO public static void ma
4、in(String args) try BufferedReader reader = new BufferedReader(new InputStreamReader(System.in);System.out.println(“请输入用户名:“);String username = reader.readLine();System.out.println(“请输入密码:“);String password = reader.readLine();System.out.println(“欢迎你,“+username); catch (IOException e) / TODO Auto-ge
5、nerated catch blocke.printStackTrace();4效果图:注:本章所用的读入键盘信息皆为 scanner 方式1.2 字符串判断版 本:1.2知识点:String 的比较,java 基本语法说 明:通过输入用户名和密码来判断,用户名是否是“icar”密码是否“123” ,如果符合进欢迎,否则就提示用户名或密码错误。代码实现:package com.icar.login.main;import java.util.Scanner;/* author zhhy* 加入了字符串的判断的登陆*/public class LoginString public static
6、void main(String args) Scanner scanner = new Scanner(System.in);System.out.print(“请输入用户名:“);String username = scanner.nextLine();System.out.print(“请输入密码:“);String password = scanner.nextLine();if(username.equals(“icar“)elseSystem.out.println(“用户名或密码错误!“ );5效果图:1.3 基本验证版 本:1.3知识点:异常,String 的比较,java 基
7、本语法说 明:通过输入用户名和密码来判断,如果用户名或密码为空则抛出异常,如果用户名或密码长度超过 20 则抛出异常,如果用户名密码正确则欢迎,否则提示错误代码实现:package com.icar.login.main;import java.util.Scanner;/* author zhhy*加入了基本验证*/public class LoginStringCheck public static void main(String args) Scanner scanner = new Scanner(System.in);System.out.print(“请输入用户名:“);Stri
8、ng username = scanner.nextLine();if(username.equals(“)|username=null)throw new RuntimeException(“用户名为空 “);else if(username.length()20)throw new RuntimeException(“用户名过长 “);System.out.print(“请输入密码:“);6String password = scanner.nextLine();if(password.equals(“)|password=null)throw new RuntimeException(“
9、密碼为空 “);else if(password.length()20)throw new RuntimeException(“密碼过长 “);if(username.equals(“icar“)elseSystem.out.println(“用户名或密码错误!“ );效果图:1.4 面向对象 1版 本:1.4知识点:面向对象,java 基本语法说 明:定义一个 user 类有 username 和 password 两个属性,代表一个用户,创建一个 LoginService 提供一个 login 方法,来判断用户名密码,创建一个 LoginView 来进行页面的展示,以及相关验证.最后创建一
10、个 Test 类来测试。7代码实现:User 类封装了用户的信息,并提供产生新用户的方法package com.icar.login.model;/* author zhhy* */public class User private String username;/用户名private String password;/密码public User() public User(String username, String password) this.username = username;this.password = password;public String getUsername(
11、) return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;public User createUser(String username, String password) /创建新对象return new User(username, password);8LoginS
12、ervice 提供一个 login 方法来进行用户名和密码的验证package com.icar.login.service;import com.icar.login.model.User;/* author zhhy 验证用户名和密码,以及判断用户和密码是否正确*/public class LoginService public boolean login(User user) if (user.getUsername().equals(“) | user.getUsername() = null) System.out.println(“用户名为空“ );return false; el
13、se if (user.getUsername().length() 20) System.out.println(“用户名过长“ );return false;if (user.getPassword().equals(“) | user.getPassword() = null) System.out.println(“密码为空“);return false; else if (user.getPassword().length() 20) System.out.println(“密码过长“);return false;if (user.getUsername().equals(“icar
14、“) else System.out.println(“用户或密码错误!“ );return false;9LoginView 来进行打印台的输出,它使用到了 LoginService 的 login方法package com.icar.login.view;import java.util.Scanner;import com.icar.login.model.User;import com.icar.login.service.LoginService;public class LoginView private LoginService loginService = new LoginS
15、ervice();public void mainView() Scanner scanner = new Scanner(System.in);System.out.print(“请输入用户名“);String username = scanner.nextLine();System.out.print(“请输入密码“);String password = scanner.nextLine();User user = User.createUser(username, password);if(loginService.login(user)System.out.println(“欢迎你,“
16、+username);在最后,我们创建一个 LoginTest来体验下:package com.icar.login.test;import com.icar.login.view.LoginView;/* author zhhy*/public class LoginTest public static void main(String args) LoginView loginView = new LoginView();loginView.mainView();10效果图:。 。 。 。不一一列举了1.5 面向对象 2版 本:1.5知识点:面向对象,继承,多态,java 基本语法说 明:在 1.4 版本的基础上,我们添加一个权限的概念,也就是说用户具有普通用户与管理员两个权限,用不同身份登录,便有不同的登录页面。首先,我们用 Admin 与 Guest 来表示两个权限的用户,他们有共同的父类 User.用不同的身份登录,欢迎页面不同。代码实现:首先是父类 User 类package com.icar.login.model;/* author zhhy*/public class User