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


    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运算符调用,在构建其类的对象时构造器会运行,并将实例字段初始化为理想状态*/

  • 相关阅读:
    从零开始写STL—哈希表
    从零开始写STL-string类型
    从零开始写STL—模板元编程之any
    从零开始写STL—模板元编程之tuple
    c++ 实现 key-value缓存数据结构
    从零开始写STL
    从零开始写STL—functional
    从零开始写STL—set/map
    从零开始写STL-二叉搜索树
    洛谷 P4016 负载平衡问题
  • 原文地址:https://www.cnblogs.com/MR---Zhao/p/12576963.html
Copyright © 2020-2023  润新知