-1
我应该编写这段代码,以便ArrIg是Pair的静态嵌套类。但是,我将它们声明为独立类,但代码仍按预期运行。我明白为什么它仍然运行。静态嵌套类的安全性JAVA
据我所知,static防止一旦调用Pair就调用ArrIg对象(假设ArrIg是Pair的嵌套类)。此外,这违反了静态嵌套类的语法,但它仍然有效。我将这些代码暴露给了哪些危险?
public class ClassPair {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] Ig= {1,2,3,4};
Pair pair= ArrIg.minmax(Ig);
System.out.print("min :"+pair.getFirst()+" | max :"+pair.getSecond());
}
}
class Pair {
public Pair(int a, int b){
first=a;
second=b;
}
public int getFirst(){
return first;
}
public int getSecond(){
return second;
}
private int first, second=0;
}
class ArrIg{
public static Pair minmax(int [] a){
int min= a[0];//1
int max=a[0];//1
for(int i=0; i<a.length;i++){
if (min>a[i]) min =a[i];//1
if (max<a[i]) max=a[i];//2,3,4
}
return new Pair(min ,max);
}
}
你的课'对'没有足够的封装它的数据 - 你应该努力。 – MaxZoom
@MaxZoom我刚刚将第一个和第二个私人字段更改为私有字段。自从我宣布ArrIg是一个内部类,并且我没有将其他更多的危险暴露给我 – BattleDrum
之后,看起来可以接受(并非完美)。 – MaxZoom