`
cynhafa
  • 浏览: 154050 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

参数在java程序中如何传递

 
阅读更多

 在Java 中,当你给方法传递一个简单类型时,它是按值传递的。因此,接收参数的子程序参数的改变不会影响到该方法之外。例如,看下面的程序:

  // Simple types are passed by value.

  class Test {

  void meth(int i,int j) { i *= 2;j /= 2;

  }

  }

  class CallByValue {

  public static void main(String args[]) {

  Test ob = new Test();

  int a = 15,b = 20;

  System.out.println("a and b before call: " +

  a + " " + b);

  ob.meth(a,b);

  System.out.println("a and b after call: " +

  a + " " + b);

  }

  }

  该程序的输出如下所示:

  a and b before call: 15 20

  a and b after call: 15 20

  可以看出,在meth( ) 内部发生的操作不影响调用中a和b的值。它们的值没在本例中没有变为30和10。

当你给方法传递一个对象时,这种情形就会发生戏剧性的变化,因为对象是通过引用传递的。记住,当你创建一个类类型的变量时,你仅仅创建了一个类的引用。因此,当你将这个引用传递给一个方法时,接收它的参数将会指向该参数指向的同一个对象。这有力地证明了对象是通过引用调用传递给方法的。该方法中对象的改变确实影响了作为参数的对象。例如,考虑下面的程序:

  // Objects are passed by reference.

  class Test { int a,b;

  Test(int i,int j) {a = i;b = j;

  }

  // pass an object

  void meth(Test o) {

  o.a *= 2;

  o.b /= 2;

  }

  }

  class CallByRef {public static void main(String args[]) { Test ob = new Test(15,20);

  System.out.println("ob.a and ob.b before call: " +

  ob.a + " " + ob.b);

  ob.meth(ob);

  System.out.println("ob.a and ob.b after call: " +

  ob.a + " " + ob.b);

  }

  }

  该程序产生下面的输出:

  ob.a and ob.b before call: 15 20

  ob.a and ob.b after call: 30 10

  正如你所看到的,在这个例子中,在meth ( ) 中的操作影响了作为参数的对象。

  有趣的一点是,当一个对象引用被传递给方法时,引用本身使用按值调用被传递。

分享到:
评论

相关推荐

    java调用shell(包含有参数的调用)

    java调用shell 包含简单的编写shell文件 调用含有参数的shell文件

    利用ASP实现JAVA动态参数的传递

    ASP JAVA 动态参数传递 实现动态网页

    Jni中C++和Java的参数传递

    Jni中C++和Java的参数传递如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的...

    Java零基础-参数传递-1.md

    内容概要: 本文详细介绍了Java中的参数传递概念。...建议通过编写简单的Java程序,并使用不同的参数传递方式来验证理论和加深理解。 如有疑问,可以参考Java官方文档或搜索相关资料,进一步扩展学习。

    Java零基础-参数传递-2.md

    内容概要: 本文进一步介绍了Java中的参数传递概念。...建议通过编写简单的Java程序,并使用不同的参数传递方式来验证理论和加深理解。 如有疑问,可以参考Java官方文档或搜索相关资料,进一步扩展学习。

    java中两种方式调用其他.exe可执行程序

    java中两种方式调用其他.exe可执行程序

    Java语言的方法参数浅析

    参数传递是Java语言中函数调用的重要步骤,清楚地了解参数传递的过程是编写出高质量程序所必须的.大多数程序设计语言具有传值调用和传引用调用的两种方法.通过对典型程序的研究与分析可以看出JAVA语言的参数传递总是...

    Java程序的参数传递及项目打包成JAR文件(以内部类为例)

    Java程序的参数传递及项目打包成JAR文件(以内部类为例)

    《Java程序设计》课程实验指导书程序代码(答案)(实验三)

    专业(specialty)和封装name属性的方法:setName(),getName(),getspecialty()编写Application,创建一个学生对象,设置name和age属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字...

    JAVA语言程序设计【高清版】.pdf

    185 9.3.2 Applet参数的读取 186 9.3.3 Applet与URL 187 9.4 在Applet中的多媒体处理 188 9.4.1 在Applet中显示图像 188 9.4.2 在Applet中播放声音 189 9.5 Applet的事件处理 189 习题 191 第10章 ...

    java用bat运行程序

    有几个程序的代码,主要是关于将Java程序写到.bat文件中双击后直接运行

    java参数传递

    试根据html文件中提供的参数,编写一个计算矩形面积和周长的Java Applet程序,并把计算结果显示在APPLET窗口中。

    JavaApplet_javaapplet小程序_java_

    一些JavaApplet小程序应用源码例子集,包括小应用程序与应用程序组合、在Applet中弹出窗口、通过HTML文件向Applet传递参数、swing的使用等。

    走进Java中方法的参数传递.pdf

    参数传递是Jave程序设计中方法调用的重要步骤,清楚地了解参数传递的过程是编写出高质量程序所必需的。本文将介绍在java中基本数据类型作为方法的参数和对象作为方法的参数是如何传递的。

    Java实用程序设计100例(第一章)

    Java实用程序设计100例

    java教学资料

    高校java初级入门教学资源。熟悉并设置JDK path 路径 熟悉eclipse开发环境。 要求同学们在开发环境中,创建一个以姓名和学号命名的...编写一个Java应用程序,应用程序输出结果为:Hello 张三 编写一个applet小应用程序

    jsp中URL传递中文参数的处理方法

    在页面的url中使用encodeURI(encodeURI(中文)),对中文进行编码,并在服务器的java程序中使用URLDecoder.decode(中文, “UTF-8”)进行解码即可; 如果url中需要传递+、#、?等特殊符号,可以使用encodeURIComponent...

    java后台获取小程序用户信息和生成自定义token,并使用filter过滤header的token源码

    java后台获取小程序用户信息和生成自定义token,并使用filter过滤header的token源码.

Global site tag (gtag.js) - Google Analytics