`

形参实参

 
阅读更多
1.形参:用来接收调用该方法时传递的参数。只有在被调用的时候才分配内存空间,一旦调用结束,就释放内存空间。因此仅仅在方法内有效。

2.实参:传递给被调用方法的值,预先创建并赋予确定值。

3.传值调用:传值调用中传递的参数为基本数据类型,参数视为形参。

4.传引用调用:传引用调用中,如果传递的参数是引用数据类型,参数视为实参。在调用的过程中,将实参的地址传递给了形参,形参上的改变都发生在实参上。

1.基础数据类型(传值调用)



2.引用数据类型(引用调用)
传引用,方法体内改变形参引用,不会改变实参的引用,但有可能改变实参对象的属性值。

举两个例子:

(1)方法体内改变形参引用,但不会改变实参引用 ,实参值不变。

  
 public class TestFun2 {  
    public static void testStr(String str){  
    str="hello";//型参指向字符串 “hello”  
    }  
    public static void main(String[] args) {  
    String s="1" ;  
    TestFun2.testStr(s);  
    System.out.println("s="+s); //实参s引用没变,值也不变  
    }  
}

执行结果打印:s=1

(2)方法体内,通过引用改变了实际参数对象的内容,注意是“内容”,引用还是不变的。

   
public class TestFun4 {  
    public static void testStringBuffer(StringBuffer sb){  
    sb.append("java");//改变了实参的内容  
    }  
    public static void main(String[] args) {  
    StringBuffer sb= new StringBuffer("my ");  
    new TestFun4().testStringBuffer(sb);  
    System.out.println("sb="+sb.toString());//内容变化了  
    }  
    }
 

执行结果,打印:sb=my java 。

所以比较参数是String和StringBuffer 的两个例子就会理解什么是“改变实参对象内容”了。

总结:

1.java的基本数据类型是传值调用,对象引用类型是传引用。

2.当传值调用时,改变的是形参的值,并没有改变实参的值,实参的值可以传递给形参,但是,这个传递是单向的,形参不能传递回实参。

3.当引用调用时,如果参数是对象,无论对对象做了何种操作,都不会改变实参对象的引用,但是如果改变了对象的内容,就会改变实参对象的内容。

  
  • 大小: 20.4 KB
0
0
分享到:
评论

相关推荐

    C语言看不懂形参实参以及调用方法的必看PPT课件.pptx

    函数的类型可以是void、int、char等,函数名是函数的唯一标识符,形式参数是函数被调用时用于接收实参值的变量。函数体是函数的实现部分,包括说明部分和执行部分,其中说明部分包括函数中所用的局部变量等的说明、...

    形参实参影响调试程序

    本文档是一个实参形参影响的程序的调试过程及结果,可以帮助更好的理解函数实参与形参关系

    VB.net中ByVal ByRef 形参 实参的区别,带源代码

    用实际代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。 源码在VB.net 2010下调试通过。 欢迎指正!

    VB.net中ByVal ByRef ;形参 实参 区别的描述,带源代码

    用代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。源码在VB.net 2010下调试通过。 欢迎指正!

    测量程序编制 - python 82函数-参数(形参实参).pptx

    函数——形参实参;函数——形参实参;Python 中,根据实际参数的类型不同,函数参数的传递方式可分为 2 种,分别为值传递和引用(地址)传递: 值传递:适用于实参类型为不可变类型(字符串、数字、元组); 引用...

    C语言看不懂形参实参以及调用方法的必看PPT学习教案.pptx

    形参是函数被调用时用于接收实参值的变量,包括参数名和参数类型。函数体包括两部分:说明部分和执行部分,其中说明部分包括函数中所用的局部变量等的说明、函数中要调用的函数的说明。 函数的调用包括嵌套调用和...

    Python的形参和实参使用方式

    今天小编就为大家分享一篇Python的形参和实参使用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    C语言中形参和实参详解及实例代码

    函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也...

    C++形参与实参的区别实例解析

    本文以实例阐述了C++中形参与实参的区别,有助于读者加深对于C++形参与实参的认识。 形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不...

    The C programing language

    The C programing language 发明C的科学家写的书

    Python 068.形参和实参_文档字符串_函数注释.mp4

    Python 068.形参和实参_文档字符串_函数注释.mp4

    c语言的形参和实参传递的区别详解

    C语言中实参和形参之间的数据传递是单向的“值传递”,单向传递,只能由实参传给形参,反之不行 输出格式并没有选择%p而是选择了%d,因为十进制的数看起来更直观 1 值传递 如果只是传递值的话: #include //值...

    在VC环境中调用库函数strcmp应注意的问题.pdf

    在编写C语言程序过程中要想熟练地使用库函数必须对函数的调用机制、形参实参的传递过程和返回值的处理有一个全面而准确的认识弄清“传值调用”和“传址调用”的区别只有这样才能很快了解C的库函数在接口和实现的...

    c++指针使用形参改变实参的方法

    下面小编就为大家带来一篇c++指针使用形参改变实参的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Phthon学习视频.zip

    16-函数-形参实参默认参数.flv 17-函数-变量作用域.flv 18-函数-return-返回值.flv 19-函数-冗余参数.flv 20-函数-lambda-匿名函数.flv 21-Switch实现.flv 26-正则表达式-初识.flv 27-正则表达式-元字符.flv 28-正则...

    javascript管中窥豹 形参与实参浅析

    本想从语言的角度来分析,无奈功力不够,只能粗浅的尝试一下,于是称之管中窥豹,还望大牛指正

    数据结构习题及答案.doc

    若只需要利用形参实现对实参值的拷贝,函数体操作形参时与实参无关,则应把形参 变量说明为( )参数。 A指针 B引用 C值 D指针引用 7.下面程序的时间复杂性的量级为()。 int i=0,s1=,s2=0; while(i++) {if (i...

    (完整word版)《汇编语言程序设计》学习总结与心得.doc

    例如,学生可以通过学习汇编语言来更好地理解 C 语言中的指针概念和数据类型形参实参函数调用全局变量局部变量等概念。这些知识点可以帮助学生更好地理解高级语言的实现机理和计算机内部结构。 学习汇编语言程序...

    老生常谈C++中实参形参的传递问题

    这里说的传递当然是指 实参是如何传递给形参的啦 还挺复杂的~~~~~~~~⊙﹏⊙b汗,这里讲述了4种参数传递的情况和注意事项: 1.非引用形参 这是最普通,也是最简单的形参传递了。 参数传递,即是使用实参副本(注意啊...

Global site tag (gtag.js) - Google Analytics