八、函数
函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。
函数的格式:
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,...)
{
执行语句;
return返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。
// 示例1
01. publicstaticintadd(inta,intb){
02. returna+b;
03. }
// 示例2
01. publicstaticvoidadd(inta,intb){
02. System.out.println(a+b);
03. }
看了上面的两个示例,在函数的应用方面可以得出以下两个明确:
两个明确:
明确要定义的功能最后的结果是什么?
明确在定义该功能的过程中,是否需要未知内容参与运算。
问题1:
需求:定义一个功能,完成两个整数的和的获取。
思路:既然定义功能,就可以用函数来体现。
通过两个明确来完成:
明确一:这个功能的结果是什么?是和。是功能的结果,所以该功能的返回值类型是int。其实,就是在明确
函数的返回值类型。
明确二:这个功能实现过程中是否需要未知内容参与运算?有,加数和被加数。这就是函数的参数列表(参
数的个数,参数的类型)。其实,就是在明确参数列表。
- 函数的重载
重载的概念:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
重载的好处:
方便于阅读,优化了程序设计。
01. class FunctionDemo{
02. public static void main(String[] args){
03. System.out.println(add(3,4));
04. System.out.println(add(3.0,4.0));
05. System.out.println(add(3,4,5));
06. }
07.
08. //加法运算,两个整数的和
09. public static int add(int a, int b){
10. return a + b;
11. }
12.
13. //加法运算,两个小数的和
14. public static double add(double a, double b){
15. return a + b;
16. }
17.
18. //加法运算,三个整数的和
19. public static int add(int a, int b,int c){
20. return add(a,b) + c;
21. }
22. }
P.S.
1、重载与返回值类型无关,只看参数列表。
2、java是严谨性语言,如果函数调用出现不确定性,会编译失败。
- 九、数组
概念:
同一种类型数据的集合。其实,数组就是一个容器。
数组的好处:
可以自动给数组中的元素从0开始编号,方便操作这些元素
格式1:
元素类型[]数组名=new元素类型[元素个数或数组长度];
int[]arr=newint[5];
格式2:需要一个容器,存储已知的具体数据。
元素类型[]数组名=new元素类型[]{元素,元素,……};
int[]arr=newint[]{3,5,1,7};
- 数组的内存分配及特点
int[]arr=newint[4];
内存分配图:
Java程序在运行时,需要在内存中分配空间。为了提高运算效率,又对空间进行了不同区域的划分,因为每
一片区域都有特定的处理数据方式和内存管理方式。
内存的划分:
1.寄存器。
2.本地方法区。
3.方法区。
4.栈内存。
5.堆内存。
栈内存:
用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放。
堆内存:
数组和对象,通过new建立的实例都存放在堆内存中。
每一个实体都有内存地址值。
实体中的变量都有默认初始化值,根据类型的不同而不同。整数类型是0,小数类型是0.0或0.0f,boolean类
型是false,char类型是'\u0000'。
如果将数组的引用实体设置为null,也就是实体不再被使用,那么会在不确定的时间内被垃圾回收器回收。
示例1:通过定义变量记录较大的值的方式实现。
01. class ArrayDemo{
02. public static void main(String[] args) {
03. int[] arr= {89,34,-270,17,3,100};
04. int max = getMax(arr);
05. System.out.println("max = " + max);
06. }
07.
08. public static int getMax(int[] arr){
09. int maxElement = arr[0];
10. for(int x = 1; x < arr.length; x++){
11. if(arr[x] > maxElement)
12. maxElement = arr[x];
13. }
14. return maxElement;
15. }
16. }
结语:至此,java基础语法部分大部分应该都包含进来了。接下来,就是就要进入java核心的部分,面向对象!