05 JavaSE 之 函数&方法

1 面向过程编程

面向过程编程:面向过程是一种编程思想。是一般性思考解决问题的方法和思路,明显过程编程中很重要的技术支撑就是函数。把一个大的系统拆分成若干子模块,一个模块由多个函数构成,函数就是一组功能代码的封装,在面向过程中叫函数,面向对象中叫方法。面向过程编程,思维方式就是考虑问题实现的细节,关注算法和逻辑。

2 方法的作用

方法的作用就是完成一段功能逻辑的封装,一个方法可以解决特定的一个问题。

总的来说方法可以有以下好处:

  1. 减少代码冗余
  2. 提高代码复用性
  3. 可用性,可扩展性提高
  4. 上层调用则可以简化代码。

3 定义一个方法

public static 返回值类型 function_name( 参数列表 ){

业务逻辑代码;

[return value ;]

}

说明:

  1. 返回值类型可以是(基本数据类型 引用数据类型 void)。
  2. 返回值类型如果是void 表示没有返回值。
  3. function_name 为方法名,应该体现出方法的作用。
  4. 参数列表 表示接收的参数,相当于声明变量 例如 int n 可以有多个,使用逗号 , 分隔。
  5. { } 为方法体,方法体是编写实现方法具体功能代码的地方。
  6. [return value ;] 如果返回值类型不是void 则必须存在,且value 的类型必须和声明的类型一致。
public class TestMethod{
   // 定义一个打印符号的方法 n 表示个数  char表示打印的具体符号	
   public static void printSign( int n , char sign  ){   // int n 为形参,就是一个变量的声明(局部变量)
	   for( int i = 0; i < n ; i++  ){
		   System.out.print( sign );
	   }
	   System.out.println();
   }
}

4 方法调用

一个方法编写好后,不会自动运行,需要调用 才会执行。方法调用的本质就是 运行方法内部的代码,所以当调用一个方法,程序会进入方法内部,直到方法执行完毕后退出方法,回到调用的位置,继续向下执行。

public class TestMethod{
   // 定义一个打印符号的方法	
   public static void printSign( int n , char sign  ){   // int n 为形参,就是一个变量的声明(局部变量)
	   for( int i = 0; i < n ; i++  ){
		   System.out.print( sign );
	   }
	   System.out.println();
   }	
   // 入口方法
   public static void main(String[] args){
	   
		System.out.println("床前明月光");
		printSign( 5 , '*' );                           // 5 是一个实际参数,就是给形参赋值
		System.out.println("疑是地上霜");
		printSign( 6 , '*' );
		System.out.println("举头望明月");
		printSign( 7, '*'  );
		System.out.println("低头思故乡");
		printSign( 8 , '*' );
   }
} 

5 形参 实参

形参:方法定义时小括号()中声明的变量为形参,形参表示执行方法必要的外界输入条件,没有实际值,形式而已,只有方法执行时,才会的到赋值。

实参:方法调用时小括号( ) 中给定的变量或数据为实参,实参表示正式赋值给形参的数据,传参的本质,就是实参赋值给形参,保证方法在执行过程中形参具有具体的值。

//定义一个检测偶数的方法
public static void isEven( int num ){ // 这里 num 为形参
    if( num %2==0 ){
        System.out.println(num+"偶数");
    }else{
        System.out.println(num+"奇数");
    }
}

public static void main(String[] args){
    //调用方法  
    isEven( 100 ); // 100 为实参
    
    int ddd = 19;
    isEven(ddd);  //  ddd 为实参
    
}

注意 :调用方法是,实参的个数和类型要和形参 保持一致,否则编译报错。

5 返回值的方法

如果你期望从一个方法执行完成后得到返回值,那么需要把这个方法设置为有返回值的方法,其方式就是在方法的声明出 确定一个返回值类型,比如:

public static int f1(){ .... } 
public static double f2(){....}

这里 f1 方法返回int f2方法返回 double 如果一个方法声明了返回值类型,那么方法体中必须使用return返回一个与声明一致的数据。

给出几个有返回值的方法定义:

// 编写一个函数, 接收一个范围 , 计算该范围中能被3整除 但不不能被5整除的 数字个数,返回个数。
public static int count( int start , int end  ){
		 int sum =0;
		 //从start 开始 end结束
		 for( int i = start;  i<=end; i++  ){
			 //判断
			 if(  i%3==0 && i%5!=0     ){
				 sum++;
			 }
		 }
		 return sum;
}
// 编写一个抽奖的函数,没有参数 内部随机一个数通过switch 决定一个奖品,并返回(奖品名称),
public static String  lucky(){
    //随机数
    Random rd = new Random();
    int luckyNum = rd.nextInt(10);
    //定义奖品
    String things = ""; 

    switch(  luckyNum ){

        case 0 : things="Iphone4~";
            break;
        case 1 : things="电视~";
            break;
        case 2 : things="电脑";
            break;
        case 3 : things="洗衣机";
            break;				 
        case 4 : things="冰箱";
            break;
        default : things="谢谢回顾";
            break;				 

    }
    return things; //返回奖品
}  

关于return的几点注意:

  1. 一个方法只能返回一个值。
  2. 如果方法中有分支,需要保证每条分支都最终可执行到return。
  3. return 后不可再跟其他代码,因为后面代码无法执行,类似还有break continue
  4. 一个返回值类型为 void 方法中也可使用return 关键字,但是不是表示返回一个值,而是表示立即终止该方法。

6 递归

递归是一种方法调用的特殊用法,是指方法在自己内部调用本身的一种行为。如果设置不当可造成 StackOverFlowError 栈溢出错误,所以必须设置有效的退出条件,来结束递归。正确的使用递归可以简化代码,但是往往可读性受影响。

案例:递归计算阶乘

public static int jc( int n  ){
		//设置一个退出条件
		if( n == 1 ){
			return 1;
		}
		return  n *  jc(n-1);
}

案例:递归计算斐波拉契数列第n项

public static int fblq2( int  n  ){
		//退出条件
		if( n==1 ){
			return 0;
		}
		if( n==2 ){
			return 1;
		}
		// 3项开始的规律
		return fblq2(n-1)+ fblq2(n-2);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值