W
wwwlgy
Unregistered / Unconfirmed
GUEST, unregistred user!
据我所知在java中传递参数(包括return)的方法是这样的,若传递的是一个简单的基本
数据类型那么它将会按值传递,即传递一个数值的副本;若是传递的是一个对象那么
它将会按址传递传递对象的一个引用了;这样就有一个安全的隐患,大家请看:
public class Class1
{
public static void main (String[] args)
{
// TODO: Add initialization code here
int [] temp;
test testclass=new test();
temp=testclass.getval();
temp[0]=20;
testclass.showval();
temp[0]=40;
testclass.showval();
}
}
class test
{
private int[] testarray=new int[2];
int[] getval()
{
return testarray;
}
void showval()
{
System.out.print(testarray[0]);
}
}
结果是2040就是说,test中的成员可以在类test外任意改动,尽管它是一个私有的成员!!!
这一点好像不是很复合软件工程的原则!!!!!
请问大家对此有何看法?????????????????????
数据类型那么它将会按值传递,即传递一个数值的副本;若是传递的是一个对象那么
它将会按址传递传递对象的一个引用了;这样就有一个安全的隐患,大家请看:
public class Class1
{
public static void main (String[] args)
{
// TODO: Add initialization code here
int [] temp;
test testclass=new test();
temp=testclass.getval();
temp[0]=20;
testclass.showval();
temp[0]=40;
testclass.showval();
}
}
class test
{
private int[] testarray=new int[2];
int[] getval()
{
return testarray;
}
void showval()
{
System.out.print(testarray[0]);
}
}
结果是2040就是说,test中的成员可以在类test外任意改动,尽管它是一个私有的成员!!!
这一点好像不是很复合软件工程的原则!!!!!
请问大家对此有何看法?????????????????????