JAVA 将对象引用作为参数修改实例对象参数 初学者笔记

JAVA采用“按值调用”,所有方法得到的仅仅是参数值的一个副本。

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;
   }
}

   /*更改器方法:调用这个方法后,对象的参数值(状态)会改变,我们称之为更改器方法*/
   /*访问器方法:只访问对象而不修改对象的方法,我们称之为更改器方法*/
  /*构造器方法:构造器方法于类同名,总是配合new运算符调用,在构建其类的对象时构造器会运行,并将实例字段初始化为理想状态*/

猜你喜欢

转载自www.cnblogs.com/MR---Zhao/p/12576963.html