方法参数_练习_ParamTest

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

posted @   xkfx  阅读(155)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示