JAVA采用“按值调用”,所有方法得到的仅仅是参数值的一个副本。
public class ParamTest { public static void main(String[] args) { System.out.println(" Testing 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; } }
/*更改器方法:调用这个方法后,对象的参数值(状态)会改变,我们称之为更改器方法*/
/*访问器方法:只访问对象而不修改对象的方法,我们称之为更改器方法*/
/*构造器方法:构造器方法于类同名,总是配合new运算符调用,在构建其类的对象时构造器会运行,并将实例字段初始化为理想状态*/