函数的基本使用方法

一、 场景

实例代码

class Hello {
	public static void main(String args){
		for(int i=0;i<30;i++){
			System.out.print("-");
		}
		System.out.println();
		System.out.println("登鹳雀楼");
		for(int i=0;i<30;i++){
			System.out.print("-");
		}
		System.out.println();
		System.out.println("白日依山尽");
		for(int i=0;i<30;i++){
			System.out.print("-");
		}
		System.out.println();
		System.out.println("黄河入海流");
		for(int i=0;i<30;i++){
			System.out.print("-");
		}
		System.out.println();
		System.out.println("欲穷千里目");
		for(int i=0;i<30;i++){
			System.out.print("-");
		}
		System.out.println();
		System.out.println("更上一层楼");
		for(int i=0;i<30;i++){
			System.out.print("-");
		}
		System.out.println();
	}
}

上面代码的问题:

1.代码冗余:程序中存在大量重复的代码,

2.可维护性不好

3.程序的可扩展性不是太好

二、 函数概念

实现特定功能的一段代码,可以反复使用,减少冗余代码,提高程序可重用性与可维护性

三、 定义的位置

定义在类内部,Class对应的括号中,不能进行嵌套定义,和main函数是同级关系,

四、 语法

public static void 函数名(){
    函数体
}
​

函数名命名规则:首字符小写,后面每个单词首字符大写,见名知意

函数体:功能代码的具体实现。

五、函数的使用

(一) 使用的语法

方法名();

案例:

public class Test{
	public static void main(String[] args){
		function1();		//直接在调用处使用函数名()的方式进行调用
	}
	public static void funciton1(){
		System.out.println("Hello World");
	}
}

(二) 函数的执行流程

java正常执行是按照代码的顺序从上往下执行,但是调用到方法时,会跳转的函数对应的函数体中,当方法执行完毕后,会返回函数调用出,继续往下执行。

public class FunctionTest1{
	public static void main(String[] args){
		System.out.println("我准备调用函数了。。。。");
		funciton1();
		System.out.println("函数调用完毕。。。。");
	}
	
	public static void funciton1(){
		System.out.println("funciton1()函数开始执行。。");
		System.out.println("funciton1()函数执行完毕。。");
	}
}

六、参数

  • 作用:函数在完成功能过程中需要外部提供数据时,使用参数明确诉求,接收数据。

  • 场景代码分析:

public class FunctionTest2{
	public static void main(String[] args){
		eat1();
	}
	
	public static void eat1(){
		System.out.println("吃东西");
	}
}
//上面函数调用会输出  吃东西 ,限制我们要修改以下需求,需求如下,
//将吃东西的内容,用参数传递到函数中,
public class FunctionTest2{
	public static void main(String[] args){
		eat1();
        eat2("饺子");		//我们通过调用有参方法,将数据传递到对应方法中,
	}
	
	public static void eat1(){
		System.out.println("吃东西");
	}
    public static void eat2(String food){
		System.out.println("吃"+food);
	}
}

(一) 参数

九、函数的三要素

注意:在设计函数时,需要根据需求选择是否添加参数,是否设计返回值,不是所有的函数都要有参数与返回值。

  • 概念:定义在函数中的一种特殊的局部变量,表示函数向使用者索要的数据,可以是多种或多个

  • 形参语法:

    定义参数语法: 参数类型  参数名,如果有多个中间用,隔开
    pubilc static void 函数名(参数类型  参数名1,参数类型 参数名2...){
    ​
    }
  • 实参列表:调用函数时的参数表,内部定义的参数称为实参(实际参数),满足函数诉求实际有值的数据
  • public class FunctionTest2{
    	public static void main(String[] args){
    		eat1();
            eat2("饺子");		//我们通过调用有参方法,将数据传递到对应方法中,
    		eat3("张三","饺子");
    	}
    	
    	public static void eat1(){
    		System.out.println("吃东西");
    	}
        public static void eat2(String food){
    		System.out.println("吃"+food);
    	}
    	public static void eat3(String name,String food){
    		System.out.println(name+"喜欢吃"+food);
    	}
        public static void eat4(String name,int number,String food){
            System.out.println(name+"吃了"+number+"个"+food);
        }
    }

    七、返回值类型与返回值

  • 返回值类型

    作用:约束函数可以返回的数据类型,可以使用任何已知类型,

    void:表示该方法没有返回值

    例:

    // 返回值类型为int
    public static int sum(int a,int b){
        
    }
  • return 关键字

    作用:将于返回值类型对应的结果返回给调用者,在调用位置生成结果;也可以用于流程控制语句,当函数遇到return时会跳出函数。

    语法:

    return;     //用户返回值类型为void类型的函数中,控制函数的执行流程
    return 数据(返回值); //用于在返回值类型不是void类型函数中,将数据(结果)返回到函数调用位置

    返回值

    概念:通过return语句返回的结果,也是函数执行的结果,最终会生成在调用函数的位置。

    例:调用者接收函数返回值

    //功能使用者(用户)获取结果
    public static void main(String[]args){
        
        //方式1:直接使用
        System.out.println( sum(102,200) );
        
        //方式2:使用变量接收再使用
        int r = sum(102,200);
        System.out.println( r );
    
    }
    
    public static int sum(int a , int b){
        int result = a + b;//计算结果
        return result;//返回计算结果
    }

  • 注意:

  • 1. 函数遇到return语句会立即返回
    2. 在非void函数中,务必保证至少有一个return语句能够正确执行(条件分之、循环语句中的return不一定执行)

    八、函数的设计

  • 函数是功能提供者,需要我们站在提供者(服务者)的角度取思考和设计

  • 设计步骤

    1. 根据需求先定义函数名(功能名称)
    2. 定义一个最简单的函数(无参、无返回值)
    3. 根据需求思考是否需要使用者提供数据,是否需要接收数据,如果需要,为函数添加对应的参数
    4. 根据需求思考是否需要返回结果给使用者,如果需要,为函数添加返回值类型与返回值

  • 函数的重要组成部分

    1. 函数名:函数的标识,定义时需满足标识符语法规范,调用函数时需要指定函数名。
    2. 参数表:定义参数的位置,标识该函数对调用者的诉求,调用者必须传入与参数相同的数据,才能使用
    3. 返回值类型:约束函数可以返回什么类型的数据给调用者
  • 完整的函数声明语法

    public 返回值类型  函数名(参数列表){
        函数体
    }

    十、函数的分类

  • 根据返回值类型,参数列表进行分类

    1. 无参无返回值(无条件、无结果)例:打印10个HelloWorld/打印1~100的和
    2. 有参无返回值(有条件、无结果)例:打印n的阶乘/打印n的所有因子
    3. 无参有返回值(无条件、有结果)例:返回1~100的和/返回50的所有因子和
    4. 有参有返回值(有条件、有结果)例:返回a与b的和/返回n的所有因子和
  • 函数的基本执行流程

当函数被调用时,实参为形参赋值,程序执行函数中的代码
执行完毕后,可以返回结果到函数的位置,接收返回值,继续向下执行其他代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思丰百年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值