第三章 java函数

一.认知

我们将一段表示某一功能的代码封装起来就是函数。
该函数就实现了某一个功能。
功能,本身就是抽象的,不是具体的。

类似a+b我们将此包装起来定义为function(a b)
我们如果想得到两个数之和可以由此带入
function(1 1) = 2

函数定义语法规则:

修饰符 返回类型 函数名(参数){ 函数体(实现函数的功能) }

int add(int x,int y) {
		int jg = x+y;
		return jg;
	}

Int:返回类型,如果函数没有返回值,类型就是void。如果有返回类型,那么函数在任何情况下都要有返回值

Add: 函数名,函数名的命名规则与变量名相同;一般函数名要能表示函数的功能。

(int x,int y):参数,函数中的不确定值;要实现功能所依赖的数据;在写参数数要标明其数据类型。参数名可以任意。

{函数体}:实现函数功能的逻辑代码

Return关键字: 返回数据。 当函数执行时遇到return,函数运行结束,return后的代码不会被执行。
函数即使没有返回类型,即void,也可是使用return来结束函数的执行。

例:
写一个函数,判断某个数组中是否包含某个值

public static boolean contain(int[] a, int x){
	for(int i=0;i<a.length;i++){
		if(a[i]==x){
			return true;
		}
	}
return false;
}

二.调用

函数调用表示要使用函数的功能,
此时就需要指定参数的值(如果函数有参数)

根据函数的修饰符不同,有不同的调用方式

  1. public static 公有的静态函数

类名.函数名(参数); (如果调用当前类的函数,可以不写类名)

  1. public 公有的函数(非静态)

创建对象,然后 对象.函数名(参数)

函数定义:

public static int add(int x,int y) {
		int jg = x+y;
		System.out.println(jg);
		return jg;
	}

函数调用:
只有调用函数,函数才会执行

Test1.add(2, 3); //Test1是类名

函数的调用过程分析:
在函数调用时,需要指定参数的值。我们指定参数的值为2,3。
@1 将2,3分别赋值给参数x,y (传参)
@2 执行函数体中的代码

概念:

  • 形参与实参

这只是一种叫法: 1 在函数定义时,指明的参数叫做形参,比如,x,y是形参 (一种形式,不明确的值) 2
在函数调用时,指明的参数叫做实参,比如,2,3是实参 (实实在在,明确的值)

  • 传参

在函数调用时,会自动将实参值赋值给形参值,这个动作,称为传参

例1:引用数据类型参数(数组)
//定义一个函数交换两个数组的第一个值

public static void swap(int[] a,int[] b){
	int c = a[0];
	a[0] = b[0];
	b[0] = c;
}
函数调用:
int[] a = {1,1,1};
int[] b = {0,0,0};
Test3.swap(a, b);
System.out.println(a[0]);//0
System.out.println(b[0]);//1

结果可以交换值

例2:基础数据类型传参:
//定义一个函数,交换两个数

public static void swap2(int x,int y) {
int z = x;
	x = y;
	y =z;
}
函数调用:
int x = 2;
int y = 3;
swap2(x,y);
System.out.println(x);//2
System.out.println(y);//3

结果不能交换值

这里因为形参和实参不是同一个变量,只是在函数调用时,将实参值赋值给形参,它俩值相等而已。

当参数是数组时,形参和实参指向同一块内存空间,通过形参操作内存空间,对实参也会有影响。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值