Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > Java值传递
【标  题】:Java值传递
【关键字】:Java
【来  源】:http://www.cublog.cn/u/17549/showart.php?id=173117

Java值传递

Your Ad Here
值传递是在一个函数中,调用另外一个函数,其中含有参数传递的情况。往往值传递就是把数据传递到另外一个函数中进行进一步处理,以更清楚地显示函数的表达意思。在函数调用的时候会有数据传递,同样要考虑形参和实参的问题,如下面的一个程序:
<A TARGET="_top" HREF="http://ad.cn.doubleclick.net/click%3Bh=v7/345a/3/0/%2a/n%3B45103473%3B0-0%3B0%3B13895291%3B4307-300/250%3B18067261/18085156/1%3B%3B%7Efdr%3D45803315%3B0-0%3B0%3B6694709%3B31-1/1%3B18135183/18153078/1%3B%3B%7Esscs%3D%3fhttp://scn.semiconductors.philips.com/"><IMG SRC="http://m.cn.2mdn.net/1280511/nxp300x250-simchin2.gif" BORDER=0></A>

public class PassTest

{

    float ptValue;

     public void changeInt (int value)

    {

           value = 55;

    }

     public void changeStr (String value)

    {

           value = new String ("different");

    }

    public void changeObjValue (PassTest ref)

    {

           ref.ptValue = 99f;

    }

    public static void main (String args[])

    {

           String str;

           intval;

           PassTest pt = new PassTest ();

           val = 11;

           pt.changeInt (val);

           System.out.println ("Int value is: " + val);

           str = new String ("Hello");

           pt.changeStr (str);

           System.out.println ("Str value is: " + str);

           pt.ptValue = 101f;

           pt.changeObjValue (pt);

           System.out.println ("Current ptValue is: " + pt.ptValue);

     }

}

这个程序最后输出的结果将是:

11

Hello

99f

开始的11和Hello就是遵循参数传递的原则,虽然改变了形参的值,但是实参却不改变,这同C语言中是一样的。那么如果想改变函数中的实参的值,那么应该怎么做呢?我们知道,在C语言中,我们可以采用指针变量,用指针变量作为函数的参数,那么这样,传递的就是参数存放的地址,那么在函数中改变同一地址的参数值的时候,就不会发生错误,可是,在java中没有指针的说法,那么,要实现上述C语言的做法,应该怎么处理呢?我们知道,java中处处都是考虑对象的,句柄是用来操作对象的活动的,那么我们如果将对象的句柄传递到函数中去,就可以使两者指向同一个句柄(也就是地址),这样就可以完成数据的修改了。见上面的程序,我们可以知道,pt是主函数中创建的PassTest的对象,通过传递它,就可以完成地址的传递,子函数中,ref与主函数的pt指向的其实是一个内存单元,那么修改ref中的ptValue的值,也就是修改pt中的ptValue的值,即使没有最后的数据返回,这个数据也是会改变的。
Java类的属性:【上一篇】
Java 1.5 的静态导入特性:【下一篇】
【相关文章】
  • Java类的属性
  • javascript 对文本框的限制
  • Javascript 判断日期 ValidDate 函数
  • FireFox 如何用Javascript 修改状态栏status
  • 比较好的Java 网站
  • 简单层RPC应用的Java实现
  • 关于java数组的深度思考
  • 我的20本Java书
  • java 面试题集
  • 跟我动手学java之 准备您的工具
  • 【随机文章】
  • 巧改Word下划线与文字间的距离
  • 讨论arm9开发,C#开发,机器人设计,freebsd的朋友到bbs.91mail.org去看看
  • 删除Linux后无法启动的解决方法
  • 字符串的IP与DWORD的IP转化
  • 抽象工厂类
  • 我的web+asp攻击
  • 一个php作的文本留言本的例子(二)
  • Ajax动态更新页面-实例(zt)
  • 项目总结
  • 获取本机的IP地址代码
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.