public class ParamTest
{
public static void main(String[] args)
{
System.out.println("\nTesting tripleSalary:");
var harry = new Employee("Harry", 50000);
System.out.println("Before: salary=" + harry.getSalary());
tripleSalary(harry);//传入值的副本,即引用Employee对象的副本
System.out.println("After: salary=" + harry.getSalary());
}
public static void tripleSalary(Employee x)
{
x.raiseSalary(200);
System.out.println("End of method: salary=" + x.getSalary());
//此操作过后参数变量x将不再使用,
// 但x与harry所共同引用的对象Employee的参数的值将发生改变
}
class Employee
{
private String name;
private double salary;
public Employee(String n, double s)//我是一个构造器方法
{
name = n;
salary = s;
}
public String getName()//我是一个访问器方法
{
return name;
}
public double getSalary()//我是一个访问器方法
{
return salary;
}
public void raiseSalary(double byPercent)//我是一个更改器方法
{
double raise = salary * byPercent / 100;
salary += raise;
}
}