Java 方法与函数
方法(Method)是一段可重用的代码块,它执行一个特定的任务。方法也被称为函数(Function)。将代码组织成方法可以提高代码的可读性、可维护性,并实现代码复用。
什么是方法?
在面向对象的编程中,方法定义了对象的行为。例如,一个 Calculator 对象可能有一个 add() 方法来执行加法运算。
定义方法
一个完整的方法定义包括:
- 修饰符 (Modifier): 如
public,static。public表示该方法可以被任何类访问。static表示该方法属于类本身,而不是类的某个特定对象。 - 返回类型 (Return Type): 方法执行完毕后返回的数据的类型。如果方法不返回任何值,使用
void。 - 方法名 (Method Name): 方法的名称,遵循驼峰命名法(camelCase)。
- 参数列表 (Parameter List): 在括号内声明的变量列表,用于接收调用时传递给方法的值。如果方法不需要参数,括号内留空。
- 方法体 (Method Body): 包含在花括号
{}内的具体代码。
语法:
示例:
调用方法
要执行一个方法,你需要“调用”它。
- 如果是实例方法(没有
static关键字),你需要先创建类的对象,然后通过对象调用。 - 如果是静态方法(有
static关键字),你可以直接通过类名调用。
参数 (Parameters) vs. 实参 (Arguments)
- 参数 (Parameter): 在方法定义中声明的变量,如
add(int a, int b)中的a和b。 - 实参 (Argument): 在调用方法时传递给方法的实际值,如
myCalculator.add(10, 20)中的10和20。
方法重载 (Method Overloading)
方法重载允许在一个类中定义多个同名的方法,只要它们的参数列表不同(参数的数量、类型或顺序不同)。编译器会根据您传递的实参来决定调用哪个版本的方法。
static 关键字
- 静态方法 (
staticmethod): 属于类本身,不依赖于任何对象实例。可以直接通过类名调用。main方法就是一个典型的静态方法。 - 实例方法 (Instance method): 属于类的对象。必须通过类的实例来调用。它可以访问该对象的实例变量。
Java 的值传递 (Pass-by-Value)
这是一个非常重要的概念:Java 总是按值传递参数的。
-
对于基本类型: 方法接收的是实参值的一个副本。在方法内修改参数,不会影响到原始的实参变量。
-
对于引用类型 (对象): 方法接收的是对象引用的一个副本。这个副本和原始引用指向堆内存中同一个对象。因此,如果在方法内部通过这个引用副本修改了对象的状态(即对象的实例变量),这个修改是会反映到原始对象上的。但是,如果在方法内让参数引用指向一个新对象,原始的引用不会受影响。