class A
{
private int[]a;
public A(int k)
{
a=new int[k];
for(int i=0;i<k;i++)
{
a[i]=k;
}
}
public int[] get()
{
return a;
}
}
class Main {
public static void main(String[] args)
{
A tem=new A(10);
int[] b=tem.get();
b[0]=100;//拿到了私有数据
}
}
这与get的语义是违背的,get应该只拿到值,而不是拿到对象的私有变量。
get应该这样定义
public int[] get()
{
int[] temp=new int[a.length];
for(int i=0;i<a.length;i++)
{
temp[i]=a[i];
}
return temp;
}