计算机语言给子程序传递参数的方法有两种:

按值传递(call-by-value):这种方法将一个参数值复制成子程序的正式参数。这样,对子程序的参数的改变不影响调用它的参数。

引用调用(call-by-reference):在这种方法中,参数的引用(而不是参数值)被传递给子程序参数,在子程序中,该引用用来访问调用中指定的实际参数。这样,对子程序参数的改变将会影响调用子程序的参数。

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

class Teshks{

void meth(int i, int j) {

i*=2;

j/=2;

}

}

public class CallByValue {

public static void main(String[] args) {

Teshks oob=new Teshks();

int a=15, b=20;

System.out.println("a和b初始值:"+a+" "+b);

oob.meth(a, b);

System.out.println("a和b在计算后的值:"+a+" "+b);

}

}

程序给出的结果是:

a和b初始值:15,20

a和b在计算后的值:15,20

可以看出,在meth()内部发生的操作并不影响调用中a和b的值。

当给你的方法传递一个对象的时候,这种情况就会发生变化,因为对象是通过引用传递的。记住当你创建一个类类型的变量时,你只是创建了一个类的引用。因此,当你将这个引用传递给一个方法时,接受它的参数将会指向该参数指向的同一个对象。这有力地证明了对象是通过引用调用传递给方法的。该对象中对象的改变确实影响了作为参数的对象。例如:package toSzifucuan;

class Teshks{

int a, b;

public Teshks(int i, int j) {

a=i;

b=j;

}

void meth(Teshks oo) {

oo.a*=2;

oo.b/=2;

}

}

public class CallByValue {

public static void main(String[] args) {

Teshks oob=new Teshks(15,20);

System.out.println("a和b初始值:"+oob.a+" "+oob.b);

oob.meth(oob);

System.out.println("a和b在计算后的值:"+oob.a+" "+oob.b);

}

}

该程序打印的结果为:

a和b初始值:15,20

a和b在计算后的值:30,10

在这个例子中,meth()中的操作影响了作为参数的对象。

当一个对象引用被传递给方法时,引用本身使用按值调用被传递。但是,因为被传递的值指向一个对象,该值的拷贝仍然指向它相应的参数所指向的同一个对象。

注意:当一个简单类型传递给一个方法时,使用按值传递。对象传递则按引用传递。

PHP中文网,有大量免费的JAVA入门教程,欢迎大家学习!

java 传入参数_java参数怎么传递参数相关推荐

  1. java客户端传递参数_java – 在客户端传递参数

    我使用RESTful Web服务.在这个Web服务中,我必须传递一个我想要保存为参数的bean. 这是服务器代码: @POST @Consumes(MediaType.APPLICATION_JSON ...

  2. java main 参数传递参数_Java千问:Java语言如何给main方法传递参数?

    大家都知道,Java语言运行程序的入口方法叫做main,这个方法有一个参数,这就表示说,我们要运行主方法,就必须给main方法传递一个参数.但是,大家似乎对这个参数向来都是视而不见,从来都没给主方法传 ...

  3. java方法传对象参数_Java方法中的参数太多,第2部分:参数对象

    java方法传对象参数 在上一篇文章中 ,我研究了与方法和构造函数的长参数列表相关的一些问题. 在那篇文章中,我讨论了用自定义类型替换基元和内置类型以提高可读性和类型安全性. 这种方法使方法或构造函数 ...

  4. dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式

    Dao层传递参数到mapping.xml文件的几种方式:(Mybatis传值总结) 第一种:传递单个参数 Dao层Code片段: /** * 根据articleId查询XXXX详情. * * @par ...

  5. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  6. angular ajax get post 参数,Angular的Post 传递参数问题及解决方法

    一.传递参数过程中POST会出问题,问题来源: 我们都知道向后台传参可以使用get.post,其形式类似于name=iyy&id=001 .但是在angular中却发现使用$http post ...

  7. angularjs方法当做参数_AngularJS $http post 传递参数数据的方法

    在cordova开发的时候使用到了$http的post方法,传递的参数服务端怎么都接收不到,搜索了下,发现使用AngularJS通过POST传递参数还是需要设置一些东西才可以! 1.不能直接使用par ...

  8. linux的 定时器传参数,JavaScript 定时器调用传递参数的方法

    JavaScript定时器调用传递参数的方法,需要的朋友可以参考下. 无论是window.setTimeout 还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许 ...

  9. jsp传递参数java_JSP页面间传递参数方法介绍

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  10. php命令行传递参数,PHP命令行传递参数

    在以非命令行模式运行PHP的时候,我们可以通过$_GET.$_POST.$_REQUEST来接受get或是post参数,但是以命令行方式运行的话,怎么传递参数以接受参数呢?关于命令行的特点,可以直接看 ...

最新文章

  1. 智能车竞赛,AI视觉组赛题浅析
  2. boost::hana::none_of用法的测试程序
  3. mysql binlog研究
  4. Java迭代器contains的问题
  5. POJ 1944 Fiber Communications (枚举 + 并查集 OR 线段树)
  6. 前端学习(1771):前端调试之serverworkers的概念和方法
  7. Linux初级运维(十七)——Linux内核编译与系统裁减
  8. c#程序片段,替换所有同名文件
  9. oracle 常用系统表
  10. javascript代码混淆的原理
  11. ElasticJob 3.0 带你快速入门
  12. 【机器学习】21个机器学习面试问答
  13. 基于数电的交通灯控制器
  14. IP地址配置错误网络无法连接怎么解决Win10?
  15. 《走出幻觉,走向成熟》--读书笔记1
  16. 推荐系统应用---新闻资讯类
  17. Scene(场景)的使用
  18. Java中的多线程安全问题
  19. 基于豆瓣哈哈哈哈哈哈小组的数据分析研究
  20. 图片 bbox 翻转

热门文章

  1. Spark Streaming与Kafka Streaming对比
  2. 今天是我“略懂”Python的第200天,我遇到了新刺激……
  3. 领导力,就是这5个问题
  4. C++关系运算符和关系表达式
  5. 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细
  6. 复习02统计学习方法(感知机perceptron machine)---图片版
  7. libevent mysql_在 libevent 中使用 MariaDB(MySQL)
  8. CV 面试问题详解宝典—目标检测篇
  9. LiTAMIN2:一种超轻型LiDAR-SLAM(ICRA2021)
  10. 上交大博士生:博三经历5轮审稿被拒后,如今发10篇论文成为审稿人