我们知道,JAVA中虽然号称没有指针,但实际对象的传递是引用传递,相当于C的指针,只不过是受限的指针。而且JAVA方法返回的对象应该也是对象的引用,而不是对象的值,如:private Color createColor(int r,int g,int b)
{
return new Color(r,g,b);
}这里我们可以得到Color对象的引用,进而操作Color对象。如果在C语言的函数中返回一个指针,那你可以得到这个指针,但这个指针指向的内容却不一定能得到,如:int *test()
{
int i = 0;
int *j = &i;
return j;
}如果你在外部调用test方法,你可以得到指针j,但j指向的内容即0却不一定能得到。因为i作为局部变量,有可能在test执行完后就被释放。
那么java里对象的引用与传递到底是怎么工作的?
{
return new Color(r,g,b);
}这里我们可以得到Color对象的引用,进而操作Color对象。如果在C语言的函数中返回一个指针,那你可以得到这个指针,但这个指针指向的内容却不一定能得到,如:int *test()
{
int i = 0;
int *j = &i;
return j;
}如果你在外部调用test方法,你可以得到指针j,但j指向的内容即0却不一定能得到。因为i作为局部变量,有可能在test执行完后就被释放。
那么java里对象的引用与传递到底是怎么工作的?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货