方法的概念

方法就是将功能重复的代码封装成一段独立的小程序,通过调用方法的方式以提高代码的复用性(减少代码重复)

int year = 2020;

if ( year % 4 == 0 &&

year % 100 != 0 || year % 400 == 0) {

System.out.println(year + "是闰年!");

}

year = 2052;

if ( year % 4 == 0 &&

year % 100 != 0 || year % 400 == 0) {

System.out.println(year + "是闰年!");

}

当需要判断两个年份是否为闰年时,以上代码存在代码重复。

方法的定义

返回值类型 方法名 (参数类型 形式参数1,参数类型 形式参数2,…) {

执行语句块;

return 返回值;

}

返回值类型: 方法输出数据的类型(如果方法没有返回值,则用关键字 void 来表示)

方法名:类似变量名,可以自定义方法名(需符合 Java 标识符规则)

形式参数:变量(用于存储调用方法输入的数据)

实际参数:调用方法输入的数据

返回值:调用方法返回的数据

注意:main 方法是一个特殊方法,它是程序的入口方法,执行程序时会 JVM 会调用 main 方法。

案例

获取 2 个整数中的较大的数

public static int getMax(int left, int right) {

int max = 0;

if (left > right) {

max = left;

} else {

max = right;

}

return max;

}

方法的调用

方法中可以调用其他方法

方法中不能嵌套定义方法

int numA = 20;

int numB = 30;

int max = getMax(numA, numB); //调用定义的 getMax 方法,并将返回值赋给 max 变量

局部变量

局部变量指在方法中声明的变量,其作用范围仅限于方法中(局部变量在使用前必须进行初始化)

局部变量的特点

生存时间:局部变量的生存时间和方法的生存时间一致,调用该方法声明该局部变量并初始化的时,该局部变量被创建并分配内存空间;直到该方法调用结束局部变量也就结束

是否需要初始化:局部变量在使用前必须进行初始化,系统默认不会对局部变量进行初始化数据操作,如果局部变量在使用前没有进行初始化则会在编译器报错;如果局部变量进行了声明没有进行初始化, 但是也一直没有被使用的话编译也是不会报错的

创建位置: 局部变量是创建在内存的栈区中

注意:main 方法也是方法,所以定义在 main 方法中的变量也是局部变量

形参与实参

形参:方法中定义的数据类型变量

实参:调用方法输入的变量或常量值

形参与实参是具有相同数据类型的不同变量,都存储于内存的栈区

内存划分

Java 内存划分区域:

栈区:变量(基本类型变量和引用类型变量)

堆区:对象(new 引用类型)

注意:内存划分为不同的区域,目的是便于数据的存储,提高同一类型数据的存取效率

方法的重载

方法的重载指的是在同一个类中,有一个以上的同名方法,但方法的参数个数或参数类型有所不同(与方法的返回值无关)

方法的重载存在的原因:为了增强方法的阅读性,优化程序设计