澳门二十一点游戏赌场 澳门二十一点游戏赌场
    您现在的位置:首页 >> 软件应用 >> Java教程 >> 内容

    Java中向方法传参数只有传值一种!

    时间:2012/7/23 20:32:12 点击:

      核心提示:本文是个总结,欢迎讨论!在Java中,参数的传递严格意义上讲都是传值的,只不过简单很容易分清楚。而对于对象,有些复杂。首先,在Java中是先声明一个类的变量。然后,用类生成一个类的实例,也就是在内存中...
    本文是个总结,欢迎讨论!

    在Java中,参数的传递严格意义上讲都是传值的,只不过简单很容易分清楚。而对于对象,有些复杂。

    首先,在Java中是先声明一个类的变量。然后,用类生成一个类的实例,也就是在内存中的类的实例区域,最后把这个区域的指针赋给类的这个变量。注意,变量中存的是指向对象的指针。

    若是按传址传参数,是要改变这个对象变量所指的内存对象区域,也就是要在方法内把新对象赋给方法外的对象变量。但是,这在Java中办不到。因为Java是把对象变量中的对象指针传入方法,并没有把变量本身的地址传入方法;在方法中,会生成新变量接受这个对象的指针。所以,在Java方法中,可以改变当前对象中的内容,却不能改变方法外边变量的值,即所指向的对象。对于传值、传址的分析就是为了在应用中少犯错误。其他是次要的。

    《此位置本有图片,因不能上传,故删除》

    0: public class DemoTest {
    1: public String x;
    2: public void setX(String x){
    3: this.x=x;
    4: }
    5: public void test(DemoTest ok){
    6: ok=new DemoTest(); this.x="333";
    7: }
    8: public String getX(){
    9: return this.x;
    10: }
    11: public static void main(String[] args) {
    12: DemoTest ob = new DemoTest();
    13: DemoTest obp = new DemoTest();
    14: ob.setX("111");
    15: System.out.println("ob.X"+ob.getX());
    16: obp.test(ob);
    17: System.out.println("ob.X"+ob.getX());
    18: ob.test(ob);
    19: System.out.println("ob.X"+ob.getX());
    20: }
    21: }

    对于上面的程序,要分清楚对象变量和对象实体。

    注意在上面的方法调用是一个可能引出错误的调用,不能说明传值和传址的区别。

    Tags:JA AV VA A中 
    作者:佚名 来源:不详

    共有评论 0相关评论
    发表我的评论
    • 大名:
    • 内容:
  • 澳门二十一点游戏赌场(www.0769online.com) © 2018 版权所有 All Rights Reserved. 邮箱:103150@qq.com 业务QQ:103150 手机:13549753683

    Power By Laoy8 SQL 3.0SP1 粤ICP备10098668号
  •