zoukankan      html  css  js  c++  java
  • Java:将值传递给方法的方式

    各种程序设计语言中方法传递方式有如下几种:

    • 按值调用 call by value
    • 按引用调用 call by reference
    • 按名称调用 call by name

    Java 中是按值调用。方法参数一般有两种类型:

    • 基本数据类型(数字、布尔值)
    • 对象引用

    基本数据类型是按值调用这个很好理解,例如下面的方法

        public static void tripleValue(double x) {
            x = 3 * x;
        }

    接着调用上面的方法

            double percent = 10;
            tripleValue(percent);

    可以看到,调用这个方法后 percent 的值该是 10,在调用方法时 x 被初始化为 percent 值的一个拷贝,也就是 10。方法中改变的也只是 x 的值而已。

    对象引用类型,方法的参数被初始化为引用对象的地址值。例如下面的方法。

       public static void swap(Employee x, Employee y)
       {
          Employee temp = x;
          x = y;
          y = temp;
       }

    接着调用上面的方法

          Employee a = new Employee("Alice", 70000);
          Employee b = new Employee("Bob", 60000);
     
          swap(a, b);

    调用方法后 a 和 b 的引用对象并没有发生改变,a 仍然是 Alice,b 仍然是 Bob。究其原因,调用方法时,x 被初始化为 a 指向对象的地址值,执行方法后,只是改变了 x 的指向对象,并没有改变 a 的指向对象。换而言之,一个方法不能让对象参数引用一个新的对象。但是一个方法可以改变一个对象参数的状态。

  • 相关阅读:
    sql-select for update
    java-JDK动态代理
    idea-热部署jreble的使用
    vue-【el-table】转成【pl-table】
    mybatis-字段值为null或为''无法存储到数据库
    vue-本地开发热部署编译缓慢
    chrome-截长图
    el-cascader 级联选择器中选中任意一级去掉圆形按钮
    idea-绿色注释颜色16进制
    markdown 语法
  • 原文地址:https://www.cnblogs.com/colin220/p/12996612.html
Copyright © 2011-2022 走看看