跳到主要内容

Java方法

提示
  1. 方法定义:Java 方法是执行特定任务的代码块,分为用户定义的方法和标准库方法。
  2. 声明与调用:方法声明包括返回类型、方法名和参数列表;调用方法时可以传递参数并获取返回值。
  3. 参数与返回类型:方法可以有多个参数,参数类型必须与声明一致;方法的返回类型可以是任何数据类型或 void

方法是执行特定任务的代码块。

假设你需要创建一个程序来绘制一个圆并对其进行上色。你可以创建两个方法来解决这个问题:

  • 一个绘制圆的方法
  • 一个给圆上色的方法

将复杂问题分解成更小的部分可以使你的程序更易于理解和重用。

在 Java 中,有两种类型的方法:

  • 用户定义的方法:我们可以根据我们的需求创建自己的方法。
  • 标准库方法:这些是 Java 中内置的方法,可以直接使用。

让我们先了解用户定义的方法。

声明 Java 方法

声明方法的语法是:

returnType methodName() {
// 方法体
}

这里,

  • returnType - 它指定了一个方法返回的值类型。例如,如果一个方法的返回类型是 int,则它返回一个整数值。

    如果方法不返回值,其返回类型是 void

  • methodName - 它是一个标识符,用于在程序中引用特定的方法。

  • 方法体 - 它包括用于执行某些任务的编程语句。方法体被包含在大括号 { } 中。

例如,

int addNumbers() {
// 代码
}

在上面的示例中,方法的名称是 addNumbers()。返回类型是 int。我们将在本教程后面了解更多关于返回类型的内容。

这是声明方法的简单语法。然而,声明方法的完整语法是

modifier static returnType nameOfMethod (parameter1, parameter2, ...) {
// 方法体
}

这里,

  • modifier - 定义访问类型,无论该方法是公开的、私有的等等。要了解更多,请访问 Java 访问修饰符

  • static - 如果我们使用了 static 关键字,它可以在不创建对象的情况下被访问。

    例如,标准 Math 类sqrt() 方法是静态的。因此,我们可以直接调用 Math.sqrt() 而不需要创建 Math 类的实例。

  • parameter1/parameter2 - 这些是传递给方法的值。我们可以向方法传递任意数量的参数。

在 Java 中调用方法

在上面的示例中,我们声明了一个名为 addNumbers() 的方法。现在,要使用该方法,我们需要调用它。

这是我们如何调用 addNumbers() 方法的方式。

// 调用方法
addNumbers();

使用方法名后跟括号在 Java 中调用方法

示例 1:Java 方法

class Main {

// 创建一个方法
public int addNumbers(int a, int b) {
int sum = a + b;
// 返回值
return sum;
}

public static void main(String[] args) {

int num1 = 25;
int num2 = 15;

// 创建 Main 的一个对象
Main obj = new Main();
// 调用方法
int result = obj.addNumbers(num1, num2);
System.out.println("总和是: " + result);
}
}

输出

总和是: 40

在上面的示例中,我们创建了一个名为 addNumbers() 的方法。该方法接收两个参数 ab。注意这行代码,

int result = obj.addNumbers(num1, num2);

这里,我们通过传递两个参数 num1num2 来调用该方法。由于该方法返回了一些值,我们将这个值存储在 result 变量中。

注意:该方法不是静态的。因此,我们使用类的对象来调用该方法。

Java 方法的返回类型

Java 方法可以返回一个值,也可以不返回任何值。我们使用 return 语句 来返回任何值。例如,

int addNumbers() {
...
return sum;
}

这里,我们返回了变量 sum。由于函数的返回类型是 intsum 变量应该是 int 类型的。否则,它将产生一个错误。

示例 2:方法返回类型

class Main {

// 创建一个方法
public static int square(int num) {

// 返回语句
return num * num;
}

public static void main(String[] args) {
int result;

// 调用方法
// 将返回值存储到 result 中
result = square(10);

System.out.println("10 的平方是: " + result);
}
}

输出:

10 的平方是: 100

在上述程序中,我们创建了一个名为 square() 的方法。该方法接收一个数字作为参数,并返回该数字的平方。

这里,我们将方法的返回类型声明为 int。因此,该方法应始终返回一个整数值。

Java 方法向方法调用返回值

注意:如果方法不返回任何值,我们使用 void 关键字作为方法的返回类型。例如,

public void square(int a) {
int square = a * a;
System.out.println("平方是: " + square);
}

Java 方法参数

方法参数是方法接受的值。如前所述,方法也可以有任意数量的参数。例如,

// 带有两个参数的方法
int addNumbers(int a, int b) {
// 代码
}

// 没有参数的方法
int addNumbers(){
// 代码
}

如果创建了带参数的方法,则在调用方法时需要传递相应的值。例如,

// 调用带有两个参数的方法
addNumbers(25, 15);

// 调用没有参数的方法
addNumbers()

示例 3:方法参数

class Main {

// 没有参数的方法
public void display1() {
System.out.println("没有参数的方法");
}

// 带有单个参数的方法
public void display2(int a) {
System.out.println("带有单个参数的方法: " + a);
}

public static void main(String[] args) {

// 创建 Main 的对象
Main obj = new Main();

// 调用没有参数的方法
obj.display1();

// 调用带有单个参数的方法
obj.display2(24);
}
}

输出

没有参数的方法
单个参数的方法: 24

在这里,方法的参数是 int 类型。因此,如果我们传递的不是 int 类型的其他数据类型,编译器将会抛出错误。这是因为 Java 是一种强类型语言。

注意:在方法调用期间传递给 display2() 方法的参数 24 被称为实际参数。

方法定义接受的参数 num 被称为形式参数。我们需要指定形式参数的类型。实际参数和形式参数的类型应始终匹配。

标准库方法

标准库方法是 Java 中内置的方法,可以随时使用。这些标准库随 Java 类库 (JCL) 以 Java 归档文件(*.jar)的形式附带 JVM 和 JRE 一起提供。

例如,

  • print()java.io.PrintSteam 的一个方法。print("...") 方法打印引号内的字符串。
  • sqrt()Math 类的一个方法。它返回一个数字的平方根。

这是一个工作示例:

示例 4:Java 标准库方法

public class Main {
public static void main(String[] args) {

// 使用 sqrt() 方法
System.out.print("4 的平方根是: " + Math.sqrt(4));
}
}

输出:

4 的平方根是: 2.0

使用方法的优点是什么?

1. 主要优点是代码可重用性。我们可以编写一次方法,并多次使用它。我们不需要每次都重写整个代码。想象一下,"写一次,多次重用"。

示例 5:Java 方法实现代码可重用性

public class Main {

// 方法定义
private static int getSquare(int x){
return x * x;
}

public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {

// 方法调用
int result = getSquare(i);
System.out.println(i + " 的平方是: " + result);
}
}
}

输出:

1 的平方是: 1
2 的平方是: 4
3 的平方是: 9
4 的平方是: 16
5 的平方是: 25

在上述程序中,我们创建了名为 getSquare() 的方法来计算一个数字的平方。这里,该方法被用于计算小于 6 的数字的平方。

因此,同一个方法被反复使用。

2. 方法使代码更加易读和便于调试。这里,getSquare() 方法将计算平方的代码保留在一个块中。因此,使其更易读。