本帖最后由 杨志男 于 2012-9-27 20:13 编辑
- package com.ithima.practice;
- class Demo {
- static String f1,f2,f3;
- public static void main(String[] args) {
-
- method("Holle"," the"," itheima");
- /*这个可以写成System.out.printf(f1,f2,f3);
- * 但这是个流
- * PrintStream java.io.PrintStream.printf(String format, Object... args),可以看下文档
- */
- System.out.print(f1);
- System.out.print(f2);
- System.out.println(f3);
- }
- public static void method(String x,String y,String z) {
- f1=x;f2=y;f3=z;
- }
- }
复制代码 java的参数传递永远是值传递,传递的就是一个copy,这时有两个引用,一个是原来的一个是参数声明的,但是因为引用有两种类型,一种是基本数据类型的引用,他们的copy就是原值,1就是1,2就是2,相当于两个引用都各自有了自己的值,所以你在方法里改变的只是参数的值,跟传递前引用指向的值没有关系,二种是对象引用,他们的copy值是个地址,就是两个引用都指向一个地址,你改变这个地址或者改变这个地址里面的值都是实际改变传递之前的对象值
注意下静态成员之间的调用 |