/**
- 引用类型传递
- @author bo
*/
class Change{
//声明属性 赋初始值
int x = 0;
}
public class QuoteTest {
public static void main(String[]args) {
Change change = new Change();
//此时x的值为20,
change.x = 20;
//调用方法改变对象的属性值
fun1(change);//
//所以
System.out.println("x=== "+ change.x);
/**
* 程序只在fun1()中才将x的值赋为25,为什么方法调用完成之后还将值保留下来呢??
*
*/
}
/***
- 因为接收的参数对象是一个对象 。也就是说 c1是一个对象的引用.
- 所以在fun1方法中的操作 在操作完成之后就会影响原来对象的参数...
- 此处将对象赋值给了c1 c1通过方法体改变x的值,此时 c1 与change指向同一块内存空间。
- 所以方法体改变了x的值 ,相当于外部的change.x = 25;
- @param c1 Change对象
*/
public static void fun1(Change c1)
{
c1.x = 25;
}
}
网友评论