📜  Java的参数与参数(1)

📅  最后修改于: 2023-12-03 15:16:37.089000             🧑  作者: Mango

Java的参数与参数

在Java编程中,方法的参数是其中一个重要的概念。参数是指在调用方法时传递给方法的值。

方法的参数类型

Java的参数类型有三种:基本类型、引用类型和变长参数。

基本类型参数

基本类型指的是Java中的八种基本数据类型:byte、short、int、long、float、double、boolean和char。基本类型参数是按值传递的,即在调用方法时会将参数值复制给方法的参数,方法内部对参数值的修改不会影响到调用者。

以下是一个基本类型参数的例子:

public class Test {
    public void print(int x) {
        System.out.println(x);
    }
    
    public static void main(String[] args) {
        Test t = new Test();
        int x = 10;
        t.print(x);
        System.out.println(x);
    }
}

输出:

10
10
引用类型参数

引用类型指的是Java中的类和接口类型。引用类型参数是按引用传递的,即在调用方法时会将引用的地址复制给方法的参数,方法内部对参数所引用的对象的属性值的修改会影响到调用者。

以下是一个引用类型参数的例子:

public class Person {
    public String name;
}

public class Test {
    public void printName(Person p) {
        p.name = "Lucy";
        System.out.println(p.name);
    }
    
    public static void main(String[] args) {
        Test t = new Test();
        Person p = new Person();
        p.name = "Alice";
        t.printName(p);
        System.out.println(p.name);
    }
}

输出:

Lucy
Lucy
变长参数

变长参数指的是方法参数的个数是可变的。在Java中,变长参数使用省略号(...)表示。变长参数必须是方法的最后一个参数,一个方法最多只能有一个变长参数。

以下是一个变长参数的例子:

public class Test {
    public void printNames(String... names) {
        for (String name : names) {
            System.out.println(name);
        }
    }
    
    public static void main(String[] args) {
        Test t = new Test();
        t.printNames("Alice", "Bob");
        t.printNames("Lucy", "Tom", "Jerry");
    }
}

输出:

Alice
Bob
Lucy
Tom
Jerry
方法参数的传递方式

Java的方法参数传递方式有两种:值传递和引用传递。

值传递

值传递指的是将参数的值复制一份给方法的参数,方法内部对参数值的修改不会影响到调用者。

以下是一个值传递的例子:

public class Test {
    public void swap(int a, int b) {
        int temp = a;
        a = b;
        b = temp;
    }
    
    public static void main(String[] args) {
        Test t = new Test();
        int a = 1;
        int b = 2;
        t.swap(a, b);
        System.out.println("a=" + a + ", b=" + b);
    }
}

输出:

a=1, b=2
引用传递

引用传递指的是将参数的引用地址复制一份给方法的参数,方法内部对参数所引用的对象的属性值的修改会影响到调用者。

以下是一个引用传递的例子:

public class Person {
    public int age;
}

public class Test {
    public void setAge(Person p) {
        p.age = 18;
    }
    
    public static void main(String[] args) {
        Test t = new Test();
        Person p = new Person();
        p.age = 20;
        t.setAge(p);
        System.out.println(p.age);
    }
}

输出:

18
总结

Java的参数类型有三种:基本类型、引用类型和变长参数。方法参数传递方式有两种:值传递和引用传递。方法参数的类型和传递方式对方法的调用和方法内部的操作都有影响,程序员应该根据需求选择适当的参数类型和传递方式来编写方法。