随机数
随机生成一个数字 步骤: 1.导包 2.创建Random对象 Random ran = new Random(); 3.获取随机数 int num = ran.nextInt(最大值); num是获取的随机数 取值范围 0 ~ 最大值-1
方法
封装(包装)一段代码使其方便使用 优点: 1.保护内部 2.降低耦合度 3.方便使用 步骤: 1.定义 2.调用 定义只需一次,但是可以调用无数次
定义
定义的位置: 类中,方法以外 注意: 一个类中可以有无数个方法 定义无参无返回值的方法 public static void 方法名(){ 方法体 } 定义有参无返回值的方法 public static void 方法名(形参列表){ 方法体 } 形参列表: 声明的多个变量,注意每个变量之间使用逗号隔开 定义有参有返回值的方法 public static 返回值类型 方法名(形参列表){ 方法体 return 返回值; } 注意: 返回值类型: 返回值的数据类型 void: 表示没有返回值 特殊的返回值: null含义为空 return: 结束方法,如果没有return,那么方法中的代码 执行完毕后,方法就会结束 return 值: 这个值就是返回值 定义无参有返回值的方法 总结 访问权限修饰符 修饰符 返回值类型 方法名(形参列表){ 方法体 } 访问权限修饰符暂时使用public 修饰符暂时使用static 返回值类型: 返回值的数据类型 如果没有返回值写void 方法名: 自定义,使用小驼峰 形参列表: 声明的多个变量,可有可无 方法体: 调用方法后执行的代码 返回值: 可有可无 如: public static double add(double d1, double d2){ double d = d1 + d2; return d; }
调用
调用的位置: 方法内调用 调用无参无返回值的方法 方法名(); 调用有参无返回值的方法 方法名(实参列表); 实参列表: 多个值或有值的变量 注意: 实参列表与形参列表一致 数据类型一致 顺序一致 长度一致 调用有参有返回值的方法 不接收返回值 方法名(实参列表); 接收返回值 数据类型 变量名 = 方法名(实参列表); 注意: 接收的数据类型要与调用方法的返回值类型一致 调用无参有返回值的方法 总结 调用无返回值的 方法名(实参列表); 注意: 实参列表与形参列表一致 数据类型一致 顺序一致 长度一致 调用有返回值的 接收 数据类型 变量名 = 方法名(实参列表); 不接收 方法名(实参列表);
特殊情况
多重调用 例子: 定义了方法a,b,c,d a方法中调用b方法 b方法中调用c方法 c方法中调用d方法 重载 要求: 1.同一个类中 2.方法名相同 3.形参列表不用 递归 要求: 方法的方法体中调用当前方法 注意: 会形成循环 例子: class Test{ public static void a(){ a(); } }
练习
生成6位验证码,要求包含大写字母,小写字母与数字
import java.util.Random;
public class Demo02 {
public static void main(String[] args) {
String code = "";
Random ran = new Random();
for(int i = 0; i < 6; i++) {
int m = ran.nextInt(3);
if(m == 0) {
//大写字母
int n = ran.nextInt(26) + 65;
char c = (char)n;
code += c;
}
else if(m == 1) {
//小写字母
int n = ran.nextInt(26) + 97;
char c = (char)n;
code += c;
}
else {
//数字
code += ran.nextInt(10);
}
}
System.out.println("code: " + code);
}
}
//登录案例,允许用户三次内输入正确就ok
//登录时每次都要输入4位验证码
import java.util.Random;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
if(isSuccess()) {
System.out.println("验证码输入成功!");
}
else {
System.out.println("验证码输入失败!");
}
}
public static boolean isSuccess() {
System.out.println("请输入验证码, 您共有3次机会");
Scanner sc = new Scanner(System.in);
int i = 0;
boolean flag = false;
while(i < 3) {
String code = getCode();
System.out.println("验证码是: " + code + ", 请输入: ");
String inputCode = sc.next();
i++;
if(inputCode.equals(code)) {
flag = true;
break;
}
}
if(flag) {
return true;
}
return false;
}
public static String getCode() {
String code = "";
Random ran = new Random();
//生成4位验证码, 包括大小写字母与数字
//0取大写字母, 1取小写字母, 2取数字
for(int i = 0; i < 4; i++) {
int m = ran.nextInt(3);
if(m == 0) {
//大写字母: 65 ~ 90
int n = ran.nextInt(26) + 65;
char c = (char)n;
code += c;
}
else if(m == 1) {
//小写字母: 97 ~ 122
int n = ran.nextInt(26) + 97;
char c = (char)n;
code += c;
}
else {
//数字
int n = ran.nextInt(10);
code += n;
}
}
return code;
}
}