函数
1.定义:
定义在类中的具有特定功能的一段独立小程序,又称方法。
为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。
2.格式:
参数类型:函数要接收的数据不确定,只能定义成形参。因为函数有特定功能如求平方,就可以输入任意数,所以不能确 定是3还是5,只能定义它的类型,如int a.
形式参数:就一变量。用于存储调用函数式传递给函数的实际参数。(相当于一个存储空间)。
实际参数:就是实际参与运算的数值。
return把值返给谁:谁调用就返给谁
当函数没有具体的返回值时,返回的返回值类型用void关键字表示。
如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数。结束功能 。
3.作用:
a.用于定义功能。
b.用于封装代码提高代码的复用性。
注意:函数中只能调用函数,不能定义函数。
4.如何定义一个函数?
函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:
a.明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。
b.在实现该功能的过程中是否有未知内容参与了运算,就是在明确函数的参数列表(参数类型&参数个数)。
记住两个明确:明确返回值;明确参数列表。
(如果功能室打印…其返回值为void,因为打印出去了,故没有返回值)
举例:定义功能,比较两个整数是否相等。
明确:a.最后确定是否相等,有返回值,即boolean类型
b.有未知参数,两个int型整数。
定义函数时,只要完成相对应的功能即可,不要多加功能,如比较大小,就不要定义打印结果功能,因为打印不打印结果是调用者的事,只要把比较结果return给调用者即可。
主函数:
a.保证该类的独立运行。
b.因为它是程序的入口。
c.因为它在被jvm调用。
----------------------
----------------------
----------------------
----------------------
----------------------
----------------------
--------
函数的重载
1.定义:
在一类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同
即可称之为该函数重载了。
如何区分重载:当函数同名,只看参数列表。和返回值类型没关系。
2.作用:
当定义功能相同,但参与运算的未知内容不同。
那么,就定义一个函数名表示该功能,方便阅读,通过参数列表不同来区分多个同名函数。
3.注意:
a与b不是重载,而且二者因为返回值类型不同,不可同时出现在函数中。
虚拟机JVM调用时,不是是否应该有返回值,出现错误。
----------------------
----------------------
----------------------
----------------------
----------------------
----------------------
----------
数组
1.定义:
用于存储同一类型数据的一个容器。
可以对该容器中的数据进行编号,从
0
开始。
数组用于封装数据,就是一个具体的实体。
2.格式:
int[] a = new int[3];
int[] a = new int[] {2,4,5}; 注意"
[]"中不要表明长度,易出错
int[] a =
{2,4,5};
等号右边:要不就直接大括号,要不就要"new+类型" a的类型为数组类型
3.内存分配及特点:
Java分了5片内存 1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆
每片内存处理数据的方式不同,就好比一间房子用墙分为卧室,客厅,卫生间等。
只要是new的,内存就会开辟新的空间
3.常见问题:
ArrayIndexOutOfBoundsException:越界
NullPointerException:空指针
编译时只检查语法错误。所以"
数组越界
"异常,不会检查出错误,
而运行时,会提示"数组越界"
4.常见操作:
需求:打印数组中的元素,元素间用“,”隔开 ;
明确:1.打印出去,故没有返回值;
2.要打印的数组不知道,有形参。
public static void printArray(int[] arr)
求最值max mix
选择排序sort
冒泡bubleSort
排序中最快的方式叫希尔排序。
以上代码排序不是很优化,数组是new出来的,在堆中反复换位置耗资源。
一般可以改写代码,让在栈内存中记录位置。
但这也麻烦,java中自带util的工具包中有
Arrays.sort();可以直接用。
位置置换功能:
发现无论什么排序,都需要对满足条件的元素进行位置置换。
所以可以把这部分相同的代码提取出来,单独封装成一个函数。
注意:因为调换的是y与y+1,代码为swap(arr,y,y+1);而不是习惯写成swap(arr,x,y)