- 函数
- 一、函数
- 1、函数的定义
- 函数就是定义在类中的具有特定功能的一段独立小程序
- 2、函数的格式
- 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,……)
- {
执行语句; - return ;
- }
- 注:
- 返回值类型是函数运行后的结果的数据类型;
- 参数类型:是形式参数的数据类型。
- 形式参数:是一个变量,用来存储调用函数时传递给函数的实际参数。
- 实际参数:传递给形式参数的具体数值
- return:用于结束函数
- 返回值:函数运行后的结果,该结果将会返回给调用者
- 3、函数的特点
- a、定义函数可以将功能代码进行封装
- b、便于对该功能进行复用
- c、函数只有被调用才会被执行
- d、函数的出现提高了代码的复用性
- e、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行,可以省略不写
注意:函数中只能调用函数,而不能在函数内定义函数
定义函数时,函数的结果应该返回给调用者,由调用者处理
- 4、如何定义一个函数呢?
- 函数就是一个功能,功能就需要两部分:1、结果2、未知内容
- 理解了两个明确,定义函数易如反掌
- 明确1:这个功能的结果是什么?//其实就是明确返回值类型
- 明确2:这个功能需要的未知内容是什么?//其实就是明确参数列表
- 5、函数的重载
- 概念:
- 在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或参数类型不同即可
- 特点:与返回值类型无关,只看参数列表
- 例://返回两个整数的和
- int add(int x,int y){return x+y;}
- int add(int x,int y,int z){return x+y+z}
- 注意:函数的功能一样,仅仅参与运算的未知内容不同时,可以定义多函数,却使用同一函数名,这样方便阅读
- 在调用时,虚拟机通过参数列表的不同来区分同名函数
- 6、内存结构
- java程序在运行时,需要在内存中分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每片区域都有特定的数据处理方式和内存管理方式
- 栈内存:
- 用于存储局部变量,当数据使用完后,所占空间自动释放
- 堆内存:
- 数组和对象,通过new建立的实例都存放在堆内存中
- 每个实体都有内存地址值
- 实体中的变量都有默认的初始化值
- 实体在不被使用时,会在不确定的时间内被垃圾回收器回收
函数在内存中的运行:
运行程序,主函数在内存中建立空间(压栈)
主函数调用功能函数,
功能函数在内存中建立空间
将值赋给功能函数
数组
一、概念
同一类型数据的集合
二、数组的格式:
格式一:
元素类型【】数组名=new 元素类型【元素个数】例:int【】arr=new int[5]
格式二:
元素类型【】数组名=new 元素类型【】{2,34,2……}例:int 【】 arr={3,4,5}
三、数组常见的问题
1、数组角标越界
原因:访问到了数组中不存在的脚标时发生
2、空指针异常
原因:arr没有指向实体,却在操作实体中的元素
四、数组中的数组——二维数组
格式一:
int[][] arr=new int [3][2]
说明:
a、定义了一个名为arr的二维数组
b、二维数组中有3个一维数组
c、每个一维数组中有2个元素
d、一维数组的名称分别为arr[0],arr[1],arr[2]
e、给第一个一维数组1角标位赋值29的写法是:arr[0][1]=29
格式二:
int[][] arr=new int [3][]
说明:
a、二维数组中有3个一维数组
b、每个一维数组都是默认初始化值 null
c、可以对这三个一维数组分别进行初始化
格式三:
int[][] arr={{1,21,3},{3,43,2},{67,56,98}}
a、定义一个名称为arr的二维数组
b、二维数组中有3个一维数组
c、每个一维数组中的具体元素都初始化
d、第二个一维数组的长度表示方式:arr[1].length
数组的特殊格式:
int[]x,y[];x是一维数组,y是二维数组
____________________________________________________________________________________________
小结:本篇重点记录的是函数和数组,需要重点掌握函数在内存中的运行情况,及数组的几种格式