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

如何在Java中返回值?传递引用?

发布时间:2023-07-04 11:16:15

在Java中,可以使用方法来返回值和传递引用。

1. 返回值:

在Java中,一个方法可以返回一个值或者可以将方法的返回类型设置为void,以便不返回任何值。

要返回一个值,应该将方法的返回类型设置为所需的类型,然后使用return关键字后跟要返回的值。

如下所示是一个返回整数的示例方法:

   public int add(int a, int b) {
       int sum = a + b;
       return sum;
   }
   

在这个例子中,add方法接受两个整数参数,并返回它们的和。

2. 引用传递:

在Java中,方法参数是按值传递的,这意味着传递给方法的是变量的副本而不是实际的变量本身。对于引用类型的变量,变量的副本实际上是一个引用,它指向相同的对象。因此,当传递一个引用类型的变量作为参数时,可能会发生以下两种情况:

a. 对象修改

如果在方法中修改了引用类型变量所引用的对象的属性,那么这些修改也会在方法外部可见。

例如:

      public class Person {
          private String name;
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      }
      
      public void changeName(Person person) {
          person.setName("John");
      }
      
      public static void main(String[] args) {
          Person person = new Person();
          person.setName("Alice");
      
          changeName(person);
      
          System.out.println(person.getName());  // 输出 "John"
      }
      

在这个例子中,changeName方法接受一个Person对象作为参数,并将其名称设置为"John"。在方法外部,调用person对象的getName方法将返回"John"。

b. 对象重新分配

如果在方法中重新分配了引用类型变量,即让它指向一个新的对象,那么方法外部的引用保持不变。

例如:

      public class Person {
          private String name;
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      }
      
      public void changePerson(Person person) {
          person = new Person();
          person.setName("John");
      }
      
      public static void main(String[] args) {
          Person person = new Person();
          person.setName("Alice");
      
          changePerson(person);
      
          System.out.println(person.getName());  // 输出 "Alice"
      }
      

在这个例子中,changePerson方法接受一个Person对象作为参数,并在方法中创建一个新的Person对象,将其名称设置为"John"。然而,在方法外部,调用person对象的getName方法将返回"Alice",因为方法中的person变量只是一个副本,方法中的重新分配不会影响外部实际的person变量。

总结:

在Java中,可以通过返回值来返回结果,或者将方法参数设置为引用类型来传递引用。方法参数的修改会影响引用对象的属性,而重新分配引用则不会影响引用变量本身。