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

  • 相关阅读:
    服务器学习
    第七章节 排序
    第六章节 优先队列/堆
    用cmd运行java时的问题
    转载一下如何联系口语
    在翻译群里看到的一个句子的翻译
    Android EditText的设置(转)
    荐 android 如何打包自定义控件(转)
    Android 自定义 SpinnerButton(转)
    Android PopupWindow的使用技巧(转)
  • 原文地址:https://www.cnblogs.com/MR---Zhao/p/12576963.html
Copyright © 2011-2022 走看看