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 的指向对象。换而言之,一个方法不能让对象参数引用一个新的对象。但是一个方法可以改变一个对象参数的状态。

  • 相关阅读:
    【网络攻击】之防止短信验证码接口被攻击
    【支付专区】之检查微信预下单返回结果
    【mybatis】之批量添加
    【java】之转码
    【springmvc】之常用的注解
    数字信号处理MATLAB简单序列
    matlab中同一文件定义子函数的方法
    MATLAB 单变量函数一阶及N阶求导
    Android 学习笔记1
    java socket tcp(服务器循环检测)
  • 原文地址:https://www.cnblogs.com/colin220/p/12996612.html
Copyright © 2011-2022 走看看