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

  • 相关阅读:
    新博客第一篇,字符串 Unicode 转义
    C# 泛型方法的类型推断
    一个改进 LRU 算法的缓冲池 update 2013.7.15
    C# 判断类型间能否隐式或强制类型转换,以及开放泛型类型转换 update 2015.02.03
    C# 词法分析器(三)正则表达式
    java面试题(二)
    Map的迭代
    Spring aop切面插入事物回滚
    Log4J的配置
    js中将yyyyMMdd格式的日期转换
  • 原文地址:https://www.cnblogs.com/MR---Zhao/p/12576963.html
Copyright © 2011-2022 走看看