Java函数方法的参数与调用方式
Java 是一门面向对象的编程语言,函数方法是其中一个非常重要的构建块,Java中的函数方法定义了程序中的行为和逻辑,是Java程序的基本组成部分之一。本文将为你介绍 Java 的函数方法参数和调用方式的相关知识。
函数方法参数
Java 的函数方法一般需要输入参数,参数是指在函数方法调用时传递给函数方法的数据。参数可以大大提高函数方法的灵活性和通用性。Java 语言中,函数方法的参数类型可以是基本数据类型,如整型、布尔型、浮点型等,也可以是对象类型。
Java 函数方法的基本语法:
[修饰符] 返回类型 函数名([参数类型1 参数名1, 参数类型2 参数名2, ...]) {
// 函数方法体
}
在函数方法定义中,参数列表的语法格式是:参数类型 参数名,中间用逗号隔开。参数类型为必须,而参数名为可选。函数方法可以不带参数,也可以带多个参数。参数类型可以使用 Java 支持的所有数据类型,包括基本类型和对象类型。
函数方法的返回值类型也需要声明,它告诉编译器函数方法返回的数据类型。
Java 函数方法的返回值类型可以是基本类型,如 boolean、char、byte、short、int、long、float 和 double,也可以是任何 Java 对象类型,甚至可以是 void。
Java 函数方法的调用方式
Java 主要有以下几种方式调用函数方法:
1. 传值调用
在传值调用时,只是把实参的值复制给函数方法的形参,函数方法的形参和实参是两个不同的变量,互相独立,任何一方对变量的改动不会影响到另一方的值。
传值调用方式 Java 代码示例:
public class MethodExample {
static void test(int a, int b) {
a = a + 10;
b = b + 20;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
public static void main(String[] args) {
int a = 10;
int b = 20;
test(a, b);
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
输出结果:
a = 20
b = 40
a = 10
b = 20
从输出结果中可以看出,在函数方法 test 中 a 和 b 的值已改变,但在 main 中的 a 和 b 的值没有改变,因为变量 a 和 b 是在函数方法内部生成的,函数方法结束后,它们的生命周期结束。
2. 引用调用
在引用调用方式中,实参和形参都是引用类型,也就是说,在函数方法内部,形参和实参共用同一块内存区域,任何一方对内存区域的修改都会影响到另一方。
引用调用方式 Java 代码示例:
public class MethodExample {
static void test(int[] array) {
for (int i = 0; i < array.length; i++) {
array[i] = array[i] * 2;
System.out.print(array[i] + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
test(array);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
输出结果:
2 4 6 8 10
2 4 6 8 10
从输出结果中可以看出,在函数方法 test 中,数组的值已经改变,而在主方法中,数组的值也已经改变了。
3. 输出调用
在输出调用方式中,函数方法不需要返回值,而是用形参的方式将数据传给调用者,也就是说,函数方法可以修改实参的值,但不会返回任何值。
输出调用 Java 代码示例:
public class MethodExample {
static void test(int a, int b, Ref c) {
a = a + 10;
b = b + 20;
c.setC(c.getC() + 30);
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c.getC());
}
public static void main(String[] args) {
int a = 10;
int b = 20;
Ref c = new Ref(50);
test(a, b, c);
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c.getC());
}
}
class Ref {
private int c;
public Ref(int c) {
this.c = c;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
}
输出结果:
a = 20
b = 40
c = 80
a = 10
b = 20
c = 80
从输出结果中可以看出,在函数方法 Test 中,a、b、c 的值都已改变,但在主方法中,a、b 的值没有改变,而 c 的值已改变,这是因为在象调用方式中,c 是引用类型,所以 c 的值发生了改变。
总结
Java 函数方法的参数和调用方式是 Java 程序必不可少的一部分。传值调用是函数方法中最常用的调用方式,引用调用可以改变引用类型的变量的值,输出调用可以用形参的方式将数据传回调用者,可以根据需求选择合适的调用方式。
