我的印象是,一個私有的內部/嵌套類僅用於/ by /由外部類訪問。但是在實驗中我意識到HashSet(不是Happy的外層類)可以訪問這個類。如果是的話,那麼private
的真實用途是什麼?是否只限制創建類到外部類?私有嵌套/內部類的目的是什麼?
public class FreeMain {
private static class Happy {
int x;
private Happy(int x) {
this.x = x;
}
@Override
public boolean equals(Object o) {
return true;
}
@Override
public int hashCode() {
return 10;
}
}
public static void main(String[] args) {
Set<Happy> happiness = new HashSet<Happy>();
Happy h1 = new Happy(10);
Happy h2 = new Happy(20);
happiness.add(h1);
happiness.add(h2);
}
}
已經有一段時間了,但是類HashSet不能夠把它放在FreeMain中並訪問它內部的私有類或變量(沿着class.variable或class.innerclass的行。但是我認爲(未經測試)如果你創建了你的私人類的一個實例並將它傳遞給某人,那麼它就可以使用它了,而且當我很早以前學習java時,它沒有Set <...>,所以我不知道它 – barlop
甚至* what * HashSet?你的問題是什麼? – EJP