欢迎访问宙启技术站
智能推送

Java函数传参的方式有哪些

发布时间:2023-07-03 17:36:53

在Java中,函数传参的方式主要有以下几种:

1. 值传递(Pass by Value):在值传递方式下,函数的参数是原始值的一个拷贝。这意味着当参数的值在函数内部改变时,并不会影响到原始值。Java中的基本数据类型(如int、float、char等)都是以值传递的方式传参。

例如:

public void modifyValue(int value) {
  value = 10;
}

public static void main(String[] args) {
  int num = 5;
  modifyValue(num);
  System.out.println(num); // 输出结果为5
}

2. 引用传递(Pass by Reference):在引用传递方式下,函数的参数是原始值的一个引用,即指向原始值的内存地址。这意味着当函数内部改变参数的值时,会影响原始值。Java中的对象类型(如数组、字符串、自定义对象等)都是以引用传递的方式传参。

例如:

public void modifyArray(int[] arr) {
  arr[0] = 10;
}

public static void main(String[] args) {
  int[] array = {5, 6, 7};
  modifyArray(array);
  System.out.println(array[0]); // 输出结果为10
}

3. 数组传参:Java中的参数可以是数组类型,通过传递数组作为参数,可以在函数内部对数组进行操作。

例如:

public void modifyArray(int[] arr) {
  arr[0] = 10;
}

public static void main(String[] args) {
  int[] array = {5, 6, 7};
  modifyArray(array);
  System.out.println(array[0]); // 输出结果为10
}

4. 对象传参:除了数组,任何对象都可以作为参数进行传递,通过传递对象作为参数,可以在函数内部对对象的属性进行操作。

例如:

class Student {
  String name;
  int age;
}

public void modifyStudent(Student stu) {
  stu.name = "Tom";
  stu.age = 20;
}

public static void main(String[] args) {
  Student s = new Student();
  s.name = "John";
  s.age = 18;
  modifyStudent(s);
  System.out.println(s.name); // 输出结果为Tom
  System.out.println(s.age); // 输出结果为20
}

总结起来,Java中的函数传参方式主要有值传递和引用传递。对于基本数据类型,采用值传递的方式;对于对象类型,采用引用传递的方式。同时,通过传递数组和对象作为参数,可以在函数内部修改其值,并且会影响到原始对象。