Java课程学习笔记8

2025-03-21

该笔记主要记录浙江大学翁恺的java入门与进阶课程的学习笔记,主要包括第7小节的函数相关的内容,包括函数的定义,函数的参数,函数的调用以及函数的本地变量等相关知识

1 函数的定义

有些代码的内容会被反复使用,为了避免每次重复,所以选择构造函数的形式,这样每次只需要调用这个函数就行了

例如判断质数里:

image-20250321230346931

可以设定一个函数的名字叫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 函数的参数

需要注意的是,函数的参数传入要和函数定义的时候的要求是一致的

image-20250321231734078

image-20250321231828328

传入的到底是什么呢?

需要注意的是,传入函数的是变量的是值,并非传入变量本身

image-20250321232106566

所以这个函数即便swap里面可以成功,函数结束之后,a还是原先的a,b还是原先的b

3 函数的调用

调用函数是用函数名(参数值)的方式实现的,即便函数没有参数,这个括号也是必要的

有参数的时候,也是要给出参数的正确顺序的,也就是根据定义的参数的顺序来传参

函数总能知道自己是从哪里被调用的,也知道要回到哪

在函数中返回值的话要用到return

如果要return的话,那么函数返回什么需要在定义函数的时候,在函数名前把返回类型写上:

image-20250321233136884

这里传参可以直接max(c,23),一个函数有多个出口是不好的设计。

void函数是不返回值的,如果要return那也只能return;,用于某些条件下函数走到这就跳出函数了

4 函数的本地变量

函数的每一次运行就产生了一个独立的空间,和上次运行时的内部变量是无关的。

函数里面定义的变量就是本地变量

image-20250321233824415

一个范围内,定义过一个变量之后就不能再定义一个相同的重名变量了

本地变量的规则

  • 本地变量是定义在块内的。

    • 它可以是定义在函数的块内。
  • 也可以定义在语句的块内。
    • 甚至可以随意拉一对大括号来定义变量。
  • 程序运行进入这个块之前,其中的变量不存在,离开这个块后,变量就消失了。