方法
概念:封装一段代码,以便方便使用
优点:1.降低代码复杂度 2.降低耦合度
使用步骤:1.定义 2.调用
方法的定义
语法:
访问权限修饰符 修饰符 返回值类型 方法名(形参列表){
方法体
}
访问权限修饰符:暂时使用public
修饰符 :暂时使用static
返回值类型:根据需要的返回值决定,如果没有或为null,使用void
形参列表:定义的多个变量,可有而无
方法体:封装的代码
方法名:自己定义,要求小驼峰定义法
使用位置:类中,主方法以外
方法分为3种:
1.无参无返回值
语法:
访问权限修饰符 修饰符 void 方法名(){
方法体
}
void表示没有返回值或返回值为null.
2.有参无返回值
语法:
访问权限修饰符 修饰符 void 方法名(形参列表){
方法体
}
3.有参有返回值
语法:
访问权限修饰符 修饰符 返回值类型 方法名(形参列表){
方法体
}
return:单独使用表示结束该方法
return xxx:表示xxx返回值,结束并且返回该值
注意:
方法的调用
语法:
对象名 或类名,方法名(实参列表)
实参列表:多个有值的变量或就是值,每个之间用逗号隔开
形参列表与实参列表的联系:实参列表要与调用的方法的形参列表一致(顺序一致,类型一致,长度一致)
注意:
方法:
1.无参无返回值
语法:方法名();
2.有参无返回值
语法:方法名(实参列表)
3.有参有返回值
语法:接收返回值
数据类型 变量 = 方法名(实参列表);
不接受返回值
方法名(实参列表);
注意:
特殊调用方法
1.多重调用
在方法a中调用方法b,在方法b中调用方法c....
2.重载
同一个类中,方法名相同,形参列表不同
3.递归
在方法a中调用方法a
注:不建议使用
方法调用案例:
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;
}
}