该笔记主要记录浙江大学翁恺的java入门与进阶课程的学习笔记,主要包括第7小节的函数相关的内容,包括函数的定义,函数的参数,函数的调用以及函数的本地变量等相关知识
1 函数的定义
有些代码的内容会被反复使用,为了避免每次重复,所以选择构造函数的形式,这样每次只需要调用这个函数就行了
例如判断质数里:
可以设定一个函数的名字叫isPrime
计算三组求和,分别是1~10,20 ~ 30, 以及35 ~ 45 ,那怎么实现呢?
为了避免代码复制,我们可以构造函数
public static void sum(int a, int b){
int i;
int sum=0;
for (i=0;i<=b;i++){
sum=sum+i;
}
System.out.println(a+"到"+b+"的和是"+sum);
}
之后只需要sum(1,10)
,sum(20,30)
,sum(35,45)
就可以了
那么什么是函数呢?
函数是一块代码,可以接收若干个参数,然后做一件事情,最后可能会返回0或者1个值
定义函数的时候,public static void sum(int a, int b)
是函数头,其中的sum
是函数名,void
是返回类型,大括号里的是函数体,函数名后的小括号的内容是函数的参数表
2 函数的参数
需要注意的是,函数的参数传入要和函数定义的时候的要求是一致的
传入的到底是什么呢?
需要注意的是,传入函数的是变量的是值,并非传入变量本身
所以这个函数即便swap里面可以成功,函数结束之后,a还是原先的a,b还是原先的b
3 函数的调用
调用函数是用函数名(参数值)
的方式实现的,即便函数没有参数,这个括号也是必要的
有参数的时候,也是要给出参数的正确顺序的,也就是根据定义的参数的顺序来传参
函数总能知道自己是从哪里被调用的,也知道要回到哪
在函数中返回值的话要用到return
如果要return
的话,那么函数返回什么需要在定义函数的时候,在函数名前把返回类型写上:
这里传参可以直接max(c,23)
,一个函数有多个出口是不好的设计。
void
函数是不返回值的,如果要return那也只能return;
,用于某些条件下函数走到这就跳出函数了
4 函数的本地变量
函数的每一次运行就产生了一个独立的空间,和上次运行时的内部变量是无关的。
函数里面定义的变量就是本地变量
一个范围内,定义过一个变量之后就不能再定义一个相同的重名变量了
本地变量的规则
-
本地变量是定义在块内的。
- 它可以是定义在函数的块内。
- 也可以定义在语句的块内。
- 甚至可以随意拉一对大括号来定义变量。
- 程序运行进入这个块之前,其中的变量不存在,离开这个块后,变量就消失了。