上面那个哥们说的也对,java中只有值传递的。但是不同的值也是有区别的
1.传值方式,只是将实参的值的拷贝传递给函数(方法),在方法内对形参进行操作,其对象是实参的拷贝,对实参不能造成影响.在方法结束返回后,形参被释放丢弃,实参的内容并不会改变;
2.传址方式,将实参的地址传递给函数(方法),在方法内对形参进行操作即等于对实参进行相同的操作,在方法结束返回后,形参同样被释放,实参的内容将会是对形参进行操作的结果.
楼主下面是我的验证代码,希望你耐心看下,看完你就不糊涂了,建议你自己运行一遍,求加分哦- /*
- 需求:验证形参和实参的关系
- */
- class Student
- {
- public int age =4;
- public String name="hello";
- }
- class Test
- {
- public static void main(String[] args)
- {
- int a = 3;
- int b = 4;
- changeBaseStyle(a,b);
- //验证是否改变了实参的值,结果是显而易见的没有改变啦
- System.out.println(a+b);
-
- //验证传地址值是否是形参的改变直接影响了实参
- Student s = new Student();
- changeIndexStyle(s);
- System.out.println(s.age+"**"+s.name);
- }
- public static void changeBaseStyle(int a,int b)
- {
- a=4;
- b=5;
- //这里的a和b是形参哦,实参在主方法内
- }
- public static void changeIndexStyle(Student stu)
- {
- stu.age=5;
- stu.name="实参改变了吗?";
- }
- }
复制代码 |