java字符串调用函数参数传递_Java方法的调用以及方法参数传递、方法的递归调用...

一、方法的调用以及方法参数传递

1、方法的定义:

​访问修饰符返回值类型方法名([参数列表]){

​方法体

}

如果方法体中需要一些未知的数据作为执行条件,那么这些数据可以作为参数。

如果方法需要返回数据,在定义有返回值的方法时需要明确返回值类型

方法调用的两种方式:

1、对象名.方法名(参数)

2、直接写方法名调用,但必须是static修饰的

//获取这个字符串的第一个字符

public static char method1(String str){

return str.charAt(0);//获取字符串的第一个字符

}

//方式一:调用方法

对象名.method1();

//方式二:调用静态方法(static修饰的)

String s="abc";

char c=method1(s)//s将赋值给方法的形参str,那么方法执行时str有值

//c就是方法调用后的返回值

1、方法的参数是基本数据类型,它传递的是值

//计算一个数的平方

public static int pow(int a){

a=a+2;//6

return a*a;//6*6=36

}

public static void main(String[] args){

int num=4;

int sum=pow(num);//num是实参num赋值给a

System,out,println(num);//4

System.out.println(sum);//36

}

2、方法的参数是引用数据类型,它传递的是地址(String类型除外)

//参数 是数组类型

public static int pow(int[] arr){

arr[0]=arr[0]+2;//根据地址 改变数组的第一个元素值arr[0]=4;

return arr[0]*arr[0];//4*4

}

调用

//调用另一个pow

int[] array={2,3};

int sum2=pow(array);//array中存放数组的地址,将地址赋值给arr 形参

System.out.println(array[0]);//4

System.out.println(sum2);//16

方法的重载:

​在一个类中,存在相同方法名的两个及以上的方法,且他们的参数列表不同(参数类型不同,参数个数不同,参数顺序不同),不考虑参数名,不考虑返回值类型

​一个类中不能存在完全相同的方法,他们是重复的方法JVM编译不通过

例如:

public int add(int a,int b){

return a+b;

}

public int add(long a,long b){

return (int)(a+b);

}

//与前两个 不重载

public void add(int c,int d){

}

//能与 方法1,2构成重载

public void add(int a){

}

//能与 方法1,2构成重载

public void add(int a,long b){

}

//能与 方法1,2构成重载

public void add(long a,int b){

}

把握;方法名是否相同,同时参数列表是否相同(参数个数不同 或者参数类型不同或者参数顺序不同)

在一个方法中可以调用其它的方法,它们的执行流程

bac0efbff051b6fb5cd06e500e6bf386.png

/**

* 程序入口

* @param args

*/

public static void main(String[] args) {

System.out.println("这里是main方法的开始");

method1();

System.out.println("这是main方法的结束");

}

// 在一个方法中可以调用另一个方法, 它们的执行顺序是这样的

public static void method1(){

System.out.println("这是method1 的开始语句块 ");

// 调用method2

method2();

System.out.println("这是method1的 结束语句块");

}

public static void method2(){

System.out.println("这是method2 的开始语句块 ");

// 调用method3

method3();

System.out.println("这是method2 的结束语句块");

}

public static void method3(){

System.out.println("这是method3的执行语句块");

}

二、方法的递归调用

1、定义

​在一个方法中,运用方法自身调用,这样的调用称为方法的递归调用,为了避免出现方法调用时出现死循环,递归调用中必须定义方法结束调用的条件。

方法递归调用执行流程

af4f892162d4ae6e8228461aad226b8c.png

public static void m3(int i){

if(i==5){

return ;

}

System.out.println("这是m3方法开始i :"+ i);

i++;

m3(i);

System.out.println("m3方法的结束 i:"+ i );

}

public static void main(String[] args) {

m3(0); //

}

练习1 : 使用递归计算一个数的阶乘

​ n =5 = 5! = 5*4的阶乘

​ f(n) = n* f(n-1) = (n-1)*f(n-1-1)

public static int f(int n ){

if(n==1){

return 1;

}

int s = n*f(n-1);

System.out.println("结束 --"+s);

return s;

}

// n =5 n=4 n=3 n=2 n=1 return 1

// s = 5*f(4) s=4* f(3) s= 3* f(2) s=2*f(1)

// s=5*24 s=4* 6 s=3* 2= 6 s=2

// s = 120

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值