黑马程序员技术交流社区

标题: 关于形参与实参? [打印本页]

作者: 东东的一些事    时间: 2015-7-5 08:08
标题: 关于形参与实参?
学了一段时间,觉得形参与实参在参与运算时是最容易搞混的了。
基本类型:形参的改变不影响实参。
引用类型:形参的改变影响实参(String类除外)。
因为String类是存放在常量池的……
其它细节忘各位大神补充…………
作者: samove    时间: 2015-7-5 08:42
看的多了,理解了,就不会混了,啦啦,德玛西亚
作者: 帅帅loyal    时间: 2015-7-5 08:54
引用类型的只有String吗?
作者: fantianfei    时间: 2015-7-5 09:09
我也不是很清楚
作者: Ruby    时间: 2015-7-5 09:15
同问,概念很模糊
作者: wgy    时间: 2015-7-5 10:47
Java中的参数传递问题:
(1) 基本数据类型:形式参数的改变不会影响实际参数。
(2) 引用数据类型:形式参数的改变会影响实际参数,是因为数据传递的是地址值,而不是值,只要地址值发生改变,那么指向就不是同一个对象。
示例演示:形式参数的改变会影响实际参数:
public class TestDemo {
        public static void main(String[] args) {
                String s1 = "hello";
                String s2 = "java";
                show(s1,s2);
                System.out.println(s1);
                System.out.println(s2);
        }
        public static void show(String s1,String s2){
                 s1=s1+"world";
                 s2=s2+"javaee";
        }
}


形式参数的改变不会影响实际参数。
public class TestDemo {
        public static void main(String[] args) {
                int s1 = 10;
                int s2 = 20;
                show(s1,s2);
        }
        public static void show(int s1,int s2){
                 s1=s1+10;
                 System.out.println(s1);
                 s2=s2+20;
                 System.out.println(s2);
        }
}

通过上面的例子演示,可以上述结论,希望对你有用。

作者: silentt    时间: 2015-7-6 21:23
这两个好容易搞混
作者: 胡家兵    时间: 2015-7-6 21:29
实参和形参的区别:
空白或占位符
1。函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
用来填充形参
2。实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
传值调用和引用调用
3。传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2