概念:实现特定功能的一段代码,可反复使用
定义语法:
public static 返回值类型 方法名称(形式参数){
? //方法主体
? }
多数情况下,方法与调用者之间需要数据的交互;调用者必须提供必要的数据,才能使方法完成相应的功能
调用方法时,所传入的数据被称为“参数”
作用:方法的参数可以让代码功能更灵活、普适度更高、易于修改和维护
方法的调用:
调用语法:
方法名称(实际参数);
经验:
public static boolean login(String username, String password){
}//用户名、密码
public static boolean login(String name, String pwd, String checkNo){
} //用户名、密码、验证码
返回值类型:规定返回值的具体类型(基本、引用、void)
返回值:方法执行后的返回结果
方法执行后,一些情况下无需返回结果,另一些情况下则必须返回结果
例如:存款操作无需返回结果,取款操作必须返回结果
定义语法:
public static 返回值类型 方法名称(形式参数列表){
? //方法主体
? return value;//返回值
? }
调用语法:
变量 = 方法名称();
return关键字:
当有返回值的方法存在分支结构时,必须保证每一条分支都具有正确的返回值 例:
if(num % 2 == 0){
return "偶数";
}else{
return "奇数";
}
return的两种用法:
应用在具有返回值类型的方法中:
return value;//表示结束当前方法,并伴有返回值,返回到方法调用处
应用在没有返回值类型(void)的方法中:
return; //表示结束当前方法,直接返回到方法调用处
注意:一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套
经验:一个方法只做一件事
好处:
什么是递归?
何时使用递归?
当需要解决的问题可以拆分成若干个小问题,大小问题的解决方式相同,方法中自己调用自己
使用循环解决的常规问题,都可以替换为递归解决
如果正确使用递归?
public class TestMethod{
public static void main(String[] args){
System.out.println("床前明月光");
pringSign();
System.out.println("疑是地上霜");
pringSign();
System.out.println("举头望明月");
pringSign();
System.out.println("低头思故乡");
pringSign();
}
//自定义方法:在一行中输入10个减号,代表分隔符
public static void pringSign(){
for(int i = 1; i <= 10; i++){
System.out.print("-");
}
System.out.println();
}
}
public class TestMethod2{
public static void main(String[] args){
System.out.println("床前明月光");
pringSign(1 , ‘-‘);
System.out.println("疑是地上霜");
pringSign(3 , ‘#‘);
System.out.println("举头望明月");
pringSign(5 , ‘*‘);
System.out.println("低头思故乡");
pringSign(7 , ‘+‘);
}
//自定义方法
public static void pringSign(int count , char sign){
for(int i = 1; i <= count; i++){
System.out.print(sign);
}
System.out.println();
}
}
public class TestReturn{
public static void main(String[] args){
int result = add(1, 2);
System.out.println(result);
int result2 = add(result, 3);
System.out.println(result2);
}
public static int add(int num1, int num2){
int sum = num1 + num2;
return sum;
}
}
public class TestReturn2{
public static void main(String[] args){
double result = calc(1.5, 2.5);
System.out.println("计算结果:" + result);
String result2 = isEven(2);
System.out.println(result2);
show();
}
public static double calc(double a, double b){
double sum = a + b;
System.out.println("运算结束");
return sum;//结束当前方法,并伴有返回值,返回到方法调用处
}
public static String isEven(int num){
if(num % 2 == 0){
return "偶数";
}else{
return "奇数";
}
}
public static void show(){
for(int i = 1; i <= 10; i++){
System.out.println("当前值" + i);
if(i == 5){
return;//结束当前方法,返回到方法调用处
}
}
}
}
public class TestJiecheng{
public static void main(String[] args){
System.out.println(jieCheng(5));
}
public static int jieCheng(int n){
int sum = 1;
for(int j = 2; j <= n; j++ ){
sum *= j;
}
return sum;
}
}
public class TestFactorial{
public static void main(String[] args){
System.out.println(factorial(5));
}
public static int factorial(int n){
if(n == 1){
return 1;
}
return n*factorial(n - 1);
}
}
原文:https://www.cnblogs.com/MRASdoubleZ/p/14362426.html