概念: 方法是一种语法结构,可以将一段代码封装成一个功能,方便复用。
特点:
- 提高代码复用性
- 提高逻辑清晰性
一、基本方法定义和调用
1、有反有参方法
修饰符 返回类型 方法名( 形参列表 ){
方法体代码;
return 返回值;
}
public static void main(String[] args) {
System.out.println(sum(1, 3, 5, 8, 7));
}
public static int sum(int... array){ //int... 效果等于 int[] 数组声明,是一种新型的同类型数据形参声明类型,其形式等于 int a1,int a2,...,int an
int sum = 0;
for (int i : array) {
sum += i;
}
return sum;
}
2、有反无参方法
修饰符 返回类型 方法名(){
方法体代码;
return 返回值;
}
public static void main(String[] args) {
System.out.println(Arrays.toString(getVerityRandom()));
}
public static int[] getVerityRandom(){
int[] verity = new int[6];
for (int i = 0; i < 6; i++) {
verity[i] = (int) (Math.random()*8+1);
}
return verity;
}
3、无反有参方法
修饰符 void 方法名( 形参列表 ){
方法体代码;
}
public static void main(String[] args) {
printContent("这就是有参无反型方法");
}
public static void printContent(String printContent){
System.out.println(printContent);
}
4、无反无参方法
修饰符 void 方法名(){
方法体代码;
}
public static void main(String[] args) {
printContent();
}
public static void printContent(){
System.out.println("这就是无反无参型方法");
}
5、调用方法
格式: 方法名(参数列表)
方法常见问题
- 方法的编写顺序无所谓(仅限Java)
- 方法不能嵌套
- 方法返回类型为void,则不需要return返回数据;若写明具体返回类型,则必须使用return返回响应数据类型数据
- return是一个方法的程序终点
- 方法不调用不执行,调用时严格按照参数列表顺序
方法案例
1、计算1~n的和。
public static void main(String[] args) {
printResult(20,2);
}
public static void printResult(int start,int end){
int sum = 0;
if (start > end){
int temp = end;
end = start;
start = temp;
}
for (int i = start; i <= end; i++) {
sum += i;
}
System.out.println(sum);
}
2、判断奇偶并找出最值
public static void main(String[] args) {
printResult(1,7,5,9,8,3);
}
public static void printResult(int... array){
int max = array[0];
int min = array[0];
for (int i : array) {
System.out.println(i%2==0?"偶数="+i:"奇数="+i);
max = Math.max(max, i);
min = Math.min(min, i);
}
System.out.println("max="+max+",min="+min);
}
奇数=1
奇数=7
奇数=5
奇数=9
偶数=8
奇数=3
max=9,min=1
三、方法内存图
方法在未被调用时存储在方法区中。
调用时进入栈内存中执行。
结束调用后方法将从栈内存弹出,由JVM进行垃圾回收清理内存。
四、方法参数传递机制
Java中最常用的传递方式是值传递,是指将一个实际参数的值赋值给形式参数,在方法改变形式参数值时,并不实际改变实际参数。
1、基本数据类型传递
方法在方法区加载完毕后,当我们依次调用方法时,首先执行main函数,main函数中有变量a的声明与初始化,所以开辟了一个空间,接着执行print方法,所以需要在方法区查找print方法,在占内存中开辟print方法空间,main方法中的实参a,将值赋值给print方法的形参content,print方法继续执行方法代码。
2、引用数据类型传递
引用数据类型传递的是内存地址值,与基本数据类型的传递是相同的,并通过内存地址获取内存单元存储的数据,再进行执行。
注意: 引用数据类型传递的是内存地址,也就是非形式参数值,所以当我们改变引用数据类型时,也会改变实际参数。
五、方法常见形式与技术
1、方法重载
概念: 同一个类出现多个名称相同,参数列表不同(个数、类型、顺序的不同) 的方法,被称为方法重载。
作用: 方法名相同表示同一类功能,根据参数列表的不同表示不同场景的调用。
2、单写return关键字
单独使用return关键字,可以立即跳出当前方法执行。