Java学习第6天

方法

概念:封装一段代码,以便方便使用

优点:1.降低代码复杂度 2.降低耦合度

使用步骤:1.定义 2.调用

方法的定义

语法:

        访问权限修饰符 修饰符 返回值类型 方法名(形参列表){

                方法体

        }

        访问权限修饰符:暂时使用public

        修饰符 :暂时使用static

        返回值类型:根据需要的返回值决定,如果没有或为null,使用void

        形参列表:定义的多个变量,可有而无

        方法体:封装的代码

        方法名:自己定义,要求小驼峰定义法

使用位置:类中,主方法以外

方法分为3种:

        1.无参无返回值

语法:

 访问权限修饰符 修饰符 void 方法名(){

                方法体

        }

void表示没有返回值或返回值为null.

        2.有参无返回值

语法:

 访问权限修饰符 修饰符 void 方法名(形参列表){

                方法体

        }

        3.有参有返回值

语法:

 访问权限修饰符 修饰符 返回值类型 方法名(形参列表){

                方法体

        }

return:单独使用表示结束该方法

return xxx:表示xxx返回值,结束并且返回该值

注意:

1, 调用有返回值的方法 , 可以选择接收 , 也可以选择不接收
2, 如果接收返回值 , 那么接收返回值的变量要与调用方法的返回值类型相同
3,java 中一个方法只能有一个返回值
4, 如果方法使用分支语句作为结束 , 要保证每一个分支都要返回值 , 而且每个分支的返回值类要相同
5,null 表示空值 , 可以表示为任意一种引用数据类型的值

方法的调用

语法:

对象名 或类名,方法名(实参列表)

实参列表:多个有值的变量或就是值,每个之间用逗号隔开

形参列表与实参列表的联系:实参列表要与调用的方法的形参列表一致(顺序一致,类型一致,长度一致)

注意:

1, 每次调用方法时 , 方法中的代码都会执行一次
2, 一个方法定义完成后 , 可以被调用无数次
3, 要保证方法已经定义了 , 才可以调用

方法:

        1.无参无返回值

        语法:方法名();

        2.有参无返回值

        语法:方法名(实参列表)

        3.有参有返回值

        语法:接收返回值

                数据类型 变量 = 方法名(实参列表);

                不接受返回值

                 方法名(实参列表);

注意:

1.有返回值的方法可以选择用变量接收或者不接收
2.没有返回值的方法不能使用变量接收
3.实参列表要与调用的方法的形参列表一致 ( 顺序一致 , 类型一致 , 长度一致 )

特殊调用方法

1.多重调用

        在方法a中调用方法b,在方法b中调用方法c....

2.重载

        同一个类中,方法名相同,形参列表不同

3.递归

        在方法a中调用方法a

        注:不建议使用

方法调用案例:

登录案例 , 允许用户三次内输入正确就 ok
登录时每次都要输入 4 位验证码
import java.util.Random;
import java.util.Scanner;

public class Demo06 {
//	public static void main(String[] args) {
//		for (int i = 0; i < 3; i++) {
//			Scanner scanner = new Scanner(System.in);
//			System.out.println("请输入账号:");
//			//用户输入的账号
//			String username = scanner.next();
//			System.out.println("请输入密码:");
//			//用户输入的密码
//			String password = scanner.next();
//			//生成验证码
//			Random random = new Random();
//			String code = "";
//			for (int j = 0; j < 4; j++) {
//				int tag = random.nextInt(3);
//				if (tag == 0) {
//					int num = random.nextInt(10);
//					code += num;
//				}else if(tag == 1) {
//					int num = random.nextInt(26)+97;
//					char c = (char) num;
//					code += c;
//				}else {
//					int num = random.nextInt(26)+65;
//					char c = (char) num;
//					code += c;
//				}
//			}
//			//提示验证码
//			System.out.println("本次验证码为:"+code);
//			System.out.println("请输入验证码:");
//			//用户输入的验证码
//			String userCode = scanner.next();
//			//比较是否登录成功
//			if ("admin".equals(username)&&
//					"jiushimima".equals(password)&&
//					userCode.equals(code)) {
//				System.out.println("登录成功");
//				break;
//			}else if(i == 2){
//				System.out.println("3次密码错误,卡被锁了");
//			}else {
//				System.out.println("还有"+(2-i)+"次机会");
//			}
//		}
//	}
	/**
	 * 使用方法的来写的
	 * 感受一下
	 * @param args
	 */
	public static void main(String[] args) {
		login();
	}
	public static void login() {
		Scanner scanner = new Scanner(System.in);
		for (int i = 0; i < 3; i++) {
			System.out.println("请输入账号:");
			//用户输入的账号
			String username = scanner.next();
			System.out.println("请输入密码:");
			//用户输入的密码
			String password = scanner.next();
			//获取验证码
			String code = getCode();
			//提示验证码
			System.out.println("本次验证码为:"+code);
			System.out.println("请输入验证码:");
			//用户输入的验证码
			String userCode = scanner.next();
			boolean b = isLogin(username, password, userCode, code, i);
			if (b) {
				break;
			}
		}
	}
	public static boolean isLogin(String username,String password,String userCode,String code,int num) {
		if ("admin".equals(username)&&
				"jiushimima".equals(password)&&
				userCode.equals(code)) {
			System.out.println("登录成功");
			return true;
		}else if(num == 2){
			System.out.println("3次密码错误,卡被锁了");
		}else {
			System.out.println("还有"+(2-num)+"次机会");
		}
		return false;
	}
	public static String getCode() {
		Random random = new Random();
		String code = "";
		for (int j = 0; j < 4; j++) {
			int tag = random.nextInt(3);
			if (tag == 0) {
				int num = random.nextInt(10);
				code += num;
			}else if(tag == 1) {
				int num = random.nextInt(26)+97;
				char c = (char) num;
				code += c;
			}else {
				int num = random.nextInt(26)+65;
				char c = (char) num;
				code += c;
			}
		}
		return code;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值