静态内部类
有时候,使用内部类只是为了把一个类隐藏在另一个类中,并不需要内部类具有对外部类对象的引用,这种情况下,可以把内部类声明为static的
当然,只有内部类能被声明为static
public class StaticInnerClassTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] d = new double[20];
for(int i=0;i<d.length;i++) {
d[i]=100*Math.random();
}
ArrayAlg.Pair p = ArrayAlg.minmax(d);
System.out.println("min="+p.getFirst()+", max="+p.getSecond());
}
}
class ArrayAlg{
public static Pair minmax(double[] d) {
if(d.length == 0) return new Pair(0 , 0);
double min = d[0];
double max = d[0];
for(int i = 1; i<d.length; i++) {
if(min>d[i]) min = d[i];
if(max<d[i]) max = d[i];
}
return new Pair(min, max);
}
public static class Pair{
private double first;
private double second;
public Pair(double f, double s) {
first = f;
second = s;
}
public double getFirst() {
return first;
}
public double getSecond() {
return second;
}
}
}
在我们的例子中,因为内部类是在一个静态方法中构造的,必须使用静态内部类