方法
1. 方法概述
1.1 什么是方法
方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。
1.2 为什么用方法?有什么好处?
提高代码的复用性,提高开发效率,使程序逻辑更清晰。
1.3 方法的定义
位置: 类中,方法外
方法的调用格式: 方法名();
方法的定义格式:
public class 类名{
...
public static 返回值类型|void 方法名([形参列表]){
//方法体内容
return 值;//如果方法声明为"非void",这里要有renturn 值
}
...
}
2. 无参方法的定义和调用
public class Demo01 {
//定义一个方法,打印3次广告
public static void printAD(){
for (int i = 0; i < 3; i++) {
System.out.println("9999");
}
}
public static void main(String[] args) {
//调用方法
printAD();
printAD();
printAD();
}
}
3. 带参方法的定义和调用
注意:
- 方法的“形参”不限数量
- 每个方法的形参:数据类型 变量名
- “数据类型”可以是Java的任何类型(基本类型、引用类型)
- 多个“形参”,“数据类型”可以重复,但“变量名”不能重复!
- 多个“形参”,没有顺序要求。
- 调用时,传递“实参”,必须要按照“形参”的:顺序,类型,数量依次传递实参
public class Demo01 {
//定义一个方法,打印3次广告
public static void printAD(int count , String s){ //形参:定义方法时,定义的参数
for (int i = 0; i < count; i++) {
System.out.println("s");
}
}
public static void main(String[] args) {
//调用方法
printAD(3,"666"); //实参 调用方法时,传递的参数
printAD(2,"555");
printAD(1,"444");
}
}
参数的好处:参数可以使方法更灵活,提高"重用性"
4.带返回值方法的定义和调用
public class Demo04 {
//定义方法,求一个整数的最大值,并返回
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
max = arr[i] > max ? arr[i] : max;
}
return max;
}
public static void main(String[] args) {
int[] arr = {1, 432, 5432, 432, 5425};
//调用
int max = getMax(arr);
}
}
5.方法调用的三种方式
1.直接调用:无返回值的方法,也可以是有返回值的方法
2.赋值调用:有返回值的方法
3.打印调用:有返回值的方法
6.方法重载
public class Demo06 {
//定义方法,求:三个整数的最大值
public static int getMax(int a, int b, int c) {
int max = a > b ? a : b;
max = max > c ? max : c;
return max;
}
//重载:定义方法,求:三个小数的最大值
public static double getMax(double a, double b, double c) {
double max = a > b ? a : b;
max = max > c ? max : c;
return max;
}
public static void main(String[] args) {
int max = getMax(10, 20, 30);//调用int参数的getMax
double max1 = getMax(3.0, 2.0, 5.0);//调用double参数的getMax
double max2 = getMax(10, 3.0, 5);//调用double参数的getMax
}
}
6.1方法重载要求
同名 不同参 与返回值无关!
6.2 方法重载的应用和好处
1.定义方便:不用起很多的方法名;
2.调用方便:像调用一个方法;
7.方法在计算机中的执行原理
方法的压栈
先进栈的方法后出栈
8.Java的参数传递机制
基本类型的参数 : 传递传递的是数值
引用类型的参数传递 : 传递的是堆内存对象的地址