方法引數_練習_ParamTest

xkfx發表於2024-10-09

ParamTest.java

public class ParamTest {
    public static void tripleValue(double x) {
        x = 3 * x;
        System.out.println("方法結束: x=" + x);
    }

    public static void tripleSalary(Employee e) {
        e.raiseSalary(200);
        System.out.println("方法結束: salary=" + e.getSalary());
    }

    public static void swap(Employee x, Employee y) {
        Employee temp = x;
        x = y;
        y = temp;
        System.out.println("方法結束: x=" + x.getName());
        System.out.println("方法結束: y=" + y.getName());
    }

    public static void main(String[] args) {
        /*
        測試1: 方法不能修改基本資料型別的引數(即數值型或布林型)
         */
        System.out.println("測試tripleValue:");
        double percent = 10;
        System.out.println("方法執行前: percent=" + percent);
        ParamTest.tripleValue(percent);
        System.out.println("方法執行後: percent=" + percent);
        /*
        測試2: 方法可以改變物件引數的狀態
         */
        System.out.println("\n測試tripleSalary:");
        Employee e = new Employee("張三", 1000);
        System.out.println("方法執行前: salary=" + e.getSalary());
        tripleSalary(e); // 同一個類內部,靜態方法可以直接被引用,無需顯式地指定類名
        System.out.println("方法執行後: salary=" + e.getSalary());
        /*
        測試3: 方法不能讓一個物件引數引用一個新物件
         */
        System.out.println("\n測試swap:");
        Employee a = new Employee("李四", 3000);
        Employee b = new Employee("王五", 2000);
        System.out.println("方法執行前: salary=" + a.getSalary());
        System.out.println("方法執行前: salary=" + b.getSalary());
        swap(a, b);
        System.out.println("方法執行後: salary=" + a.getSalary());
        System.out.println("方法執行後: salary=" + b.getSalary());
    }
}

參考輸出

測試tripleValue:
方法執行前: percent=10.0
方法結束: x=30.0
方法執行後: percent=10.0

測試tripleSalary:
方法執行前: salary=1000.0
方法結束: salary=3000.0
方法執行後: salary=3000.0

測試swap:
方法執行前: salary=3000.0
方法執行前: salary=2000.0
方法結束: x=王五
方法結束: y=李四
方法執行後: salary=3000.0
方法執行後: salary=2000.0

相關文章