Java学习笔记day04

随机数

随机生成一个数字
步骤:
    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;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值