1、方法
1.1 定义规则
访问修饰符 返回值类型 方法名(参数类型1 参数1,参数类型2 参数2…){
方法体
}
示例:
public static int (int num1,int num2){
return;
}
具体代码展示:
package Day05_method;
/**
* @author Ran
* @since JDK 1.8
*/
public class Demo02 {
public static void main(String[] args) {
print(3,"!");
strprintf();
print(4,"$");
strprintf();
print(5,"%");
}
public static void print(int num,String str){
for (int i=0;i<=num;i++){
for (int j=0;j<=i;j++){
System.out.print(str);
}
System.out.println();
}
}
public static void strprintf(){
System.out.println("-------------");
}
}
调用方法流程:
注意事项:
- 1.方法必须定义在类中
- 2.静态方法只能调用静态方法,所以近期写的方法需要加上static
- 3.方法可以重复调用,减少代码量,提高代码的复用性
- 4.方法只做一件事
- 5.确定方法的作用,确定方法名,确定参数,确定返回值类型
1.2 优点
好处:
- 减少代码冗余。
- 提高复用性。
- 提高可读性。
- 提高可维护性。
- 方便分工合
1.3 方法的参数
多数情况下,方法与调用者之间需要数据的交互;调用者必须提供必要的数
据,才能使方法完成相应的功能。
代码展示:
package com.qf.ran.method;
/**
* @author Ran
* @since JDK 1.8
* 编写方法 计算2个整数的和并返回
* 方法的返回值类型由方法返回的数据的数据类型决定
* 如果没有返回数据,则使用void
*/
public class Demo03 {
public static void main(String[] args) {
//1.调用方法并接受返回值
int num = add(3,4);
System.out.println("num:"+num);
//2.调用方法不接收返回值
add(4,5);
}
//计算2个数之和的方法
public static int add(int num1,int num2){
int sum = num1 +num2;
return sum;
}
}
1.4 重载
重载:
- 方法必须都在一个类中
- 方法的名字必须一样
- 方法的参数列表不一样 – 参数个数不一样或者参数类型不一样
- 与返回值没有关系
代码展示:
package com.qf.ran.method;
/**
* @author Ran
* @since JDK 1.8
*
* 重载:
* 1.方法必须都在一个类中
* 2.方法的名字必须一样
* 3.方法的参数列表不一样 -- 参数个数不一样或者参数类型不一样
* 4.与返回值没有关系
*
*/
public class Demo05 {
public static void main(String[] args) {
add(1,2,3);
}
public static void add(){
System.out.println("添加方法");
}
//重复定义
/*public static void add(){
System.out.println("第二个添加方法");
}*/
//重载
public static void add(int num){
}
//重载
public static void add(String str){
}
//重载
public static void add(int num1,int num2){
System.out.println(num1+num2);
}
//重载
public static void add(int num1,int num2,int num3){
System.out.println(num1+num2+num3);
}
//重复定义 -- 参数个数一样,参数类型一样,形参名不一样
/*public static void add(int num2,int num1){
} */
//重复定义 -- 参数个数一样,参数类型一样,返回值类型不一样
/*public static double add(int num1,int num2){
return 0.0;
}*/
}
5.2 形参与实参
定义语法:
public static void 方法名称( 形式参数 ){
//方法主体
}
经验:
- “形参”等价于“局部变量的声明”。
调用语法:
- 方法名称( 实际参数 );
经验:
- “实参”等价于“局部变量的赋值”。
作用:
- 方法的参数可以让代码功能更灵活、普适性更高,易于修改及维护。
1.5 递归
递归:
- 1.方法里调用方法本身
- 2.方法里有出口
代码示例:
package Day05_method;
/**
* @author Ran
* @since JDK 1.8
*
* 递归:
* 1.方法里调用方法本身
* 2.方法里有出口
*
* 阶乘:
* 1! = 1 = 1
* 2! = 1*2 = 1!*2
* 3! = 1*2*3 = 2!*3
* 4! = 1*2*3*4 = 3!*4
* ...
* n! = 1*2*3....*n = (n-)!*n
*
*/
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入数字,计算其阶乘:");
long num1 = input.nextLong();
if(num1<=0){
System.out.println("输入有误");
}else{
long num2 = recursion(num1);
System.out.printf("%d!=%d",num1,num2);
}
}
public static long recursion(long num){
if (num==1){
return 1;
}
return recursion(num-1)*num;
}
}
图示讲解: