码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础-学习笔记(八)——函数的参数传递

时间:2015-11-06 13:07:00      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

1、基本数据类型的参数传递

技术分享
 1 class PassValue
 2 {
 3     
 4     public static void main(String [] args)
 5     {
 6         int x=5;
 7         change(x);
 8         System.out.println("the current value is "+x);
 9     }
10     public static void change(int x)
11     {
12         x=3;
13     }
14 }
15 /*
16 F:\java_example>java PassValue
17 the current value is 5
18 */
View Code

实参x和形参x,虽然名字相同,但所占内存空间不一样,并且作用域也不同。形参x的作用域只限于change()中,它的取值变化是,首先取到main()中的5赋值给x,再通过change()将x的值由5变成3,最后调用change()结束,x的内存也被释放()。这一系列过程中,实参x,也就是main()中的x的值一直没有变化,所以最终打印出来为5

2、引用数据类型的参数传递

技术分享
class PassValue
{
    int x;
    public static void main(String [] args)
    {
        PassValue obj = new PassValue();
        obj.x=5;
        change(obj);
        System.out.println("the current value is "+obj.x);
    }
    public static void change(PassValue obj)
    {
        obj.x=3;
    }
}
/*
F:\java_example>java PassValue
the current value is 3
*/
View Code

 

技术分享

如图所示,形式参数obj是新增的一个引用句柄,其实它的作用域也只限于change函数中,但它在销毁之前,已经将对象中x的值更改,所以打印出来是3.

Java基础-学习笔记(八)——函数的参数传递

标签:

原文地址:http://www.cnblogs.com/tiantianxiangshang33/p/4942214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!