定义
有时候使用内部类只是为了把一个类隐藏在另外一个类内部。并不需要引用outerClass的对象或则变量的时候,可以申明为static的InnerClass.
比如:计算一个数组中的最大值和最小值。
可以定义两个方法,一个求最大,一个求最小,
缺点:需要将数组遍历两次。
如果可以只遍历一次,并且同时返回最大,最小值怎么办。
定义一个内部类:MinMax,它包含最大最小值两个变量,让outer calss 的compute函数返回这个内部类,因为这个函数不需要访问outerClass的变量,所以定义成static的,这样就减少了对outerClass对象的引用.
public OuterClass{
public InnerClass computeMinMax(ArrayList data){
int min=...
int max=....
return new InnerClass(min,max);
}
public static InnerClass(int min,int max){
int min;
int max;
getMin();
getMax();
}
}
网友评论