zoukankan      html  css  js  c++  java
  • 当一个对象被当作参数传递到一个方法后,此方法可改变 这个对象的属性,并可返回变化后的结果,那么这里到底是值传 递还是引用传递?

    是值传递。Java 语言的方法调用只支持参数的值传递。当一个对象实例作为一个

    参数被传递到方法中时,参数的值就是对该对象的引用。对象的属性可以在被调

    用过程中被改变,但对对象引用的改变是不会影响到调用者的。C++和 C#中可以

    通过传引用或传输出参数来改变传入的参数的值。在 C#中可以编写如下所示的代

    码,但是在 Java 中却做不到。

    using System;

    namespace CS01 {

    class Program {

    public static void swap(ref int x, ref int y) {

    int temp = x;

    x = y;

    y = temp;

    }

    public static void Main (string[] args) {

    int a = 5, b = 10;

    swap (ref a, ref b);

    // a = 10, b = 5;

    Console.WriteLine ("a = {0}, b = {1}", a, b);

    }

    }

    }

    说明:Java 中没有传引用实在是非常的不方便,这一点在 Java 8 中仍然没有得到

    改进,正是如此在 Java 编写的代码中才会出现大量的 Wrapper 类(将需要通过

    方法调用修改的引用置于一个 Wrapper 类中,再将 Wrapper 对象传入方法),

    这样的做法只会让代码变得臃肿,尤其是让从 C 和 C++转型为 Java 程序员的开

    发者无法容忍。

  • 相关阅读:
    15.5.3 【Task实现细节】状态机的结构
    JavaWeb-EL的11个内置对象
    JavaWeb-EL入门
    JavaWeb-BeanUtils
    JavaWeb-JavaBean
    JavaWeb-JSP动作标签
    JavaWeb-include和taglib指令
    JavaWeb-pageContext对象
    JavaWeb-page指令
    JavaWeb-URL重写
  • 原文地址:https://www.cnblogs.com/programb/p/13021304.html
Copyright © 2011-2022 走看看