中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
java函数参数传值之我见
作者:未知 时间:2005-07-27 22:26 出处:CSDN 责编:chinaitpower
              摘要:java函数参数传值之我见

在一些群里总是有人问java函数传的到底是什么,这阵子有时间了,思考了一下,找了个演示小程序
又按自己的理解画了个图,如果有人光顾我的blog的话,可以讨论一下

class Obj
{
     String str = "init value";
     public String toString() //overiding重写了toString()方法,可以被显式或隐式调用
     {
          return str+"+Haha-yang";
     }
}

public class ObjRef
{
     Obj aObj = new Obj();
 
     int aInt = 11;
 
     public void changeObj(Obj inObj)
     {
          inObj.str = "changed value"; //可以改变传递进入对象的属性值
     }
 
     public void changePri(int inInt)
     {
          inInt = 22;
     }
 
     public static void main(String[] args)
     {
          ObjRef oRef = new ObjRef();
          System.out.println("1  Before call changeObj() method: " + oRef.aObj);//在这里,oRef.aObj自动调用了Obj类的toString()方法(隐式调用)
          System.out.println("2  Before call changeObj() method: " + oRef.aObj.toString());//在这里,oRef.aObj调用了Obj类的toString()方法(显式调用)
  
          System.out.println("3  Before call changeObj() method: " + oRef.aObj.str);
  
          oRef.changeObj(oRef.aObj);
          System.out.println("4  After call changeObj() method: " + oRef.aObj);//oRef.aObj隐式调用了父类的toString()方法
          System.out.println("4b After call changeObj() method: " + oRef.aObj.toString());//oRef.aObj显式调用了父类的toString()方法
  
          System.out.println("3b Before call changeObj() method: " + oRef.aObj.str);
  
          System.out.println("==================Print Primtive=================");
          System.out.println("5  Before call changePri() method: " + oRef.aInt);
  
          oRef.changePri(oRef.aInt);
          System.out.println("6  After call changePri() method: " + oRef.aInt);

     }
}

输出:
C:\123>java ObjRef
1  Before call changeObj() method: init value+Hahayang
2  Before call changeObj() method: init value+Hahayang
3  Before call changeObj() method: init value
4  After call changeObj() method: changed value+Hahayang
4b After call changeObj() method: changed value+Hahayang
3b Before call changeObj() method: changed value
==================Print Primtive=================
5  Before call changePri() method: 11
6  After call changePri() method: 11


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有