Poszedłem na tę rozmowę kwalifikacyjną na stanowisko programisty i dali mi test z sytuacjami w kodeksie narożnym, zazwyczaj z 4 opcjami do wyboru.
Jedno z pytań było zadeklarowane w enum poza zakresem klasy, szybko sprawdziłem odpowiedź "nie kompilowałem" i kontynuowałem z pozostałymi pytaniami. To było coś jak:Enum zadeklarowany poza zakresem klasy
enum Colors {BLUE,RED,GREEN}
class Test {
//other code, not really important with my question
}
Ten kod faktycznie kompiluje.
Poza tym, że taki wywiad (może lub) może nie być przydatny, aby dowiedzieć się, czy jest to dobry programista, niepokoi mnie: dlaczego miałbym deklarować takie wyliczenie? Dlaczego mogę to zrobić tylko dzięki enum? Zrobiłem kilka testów i okazało się, że są widoczne w klasie, ale nie w innych klasach.
Sidenote: Zdobyłem naprawdę słabe wyniki: P. Mam maksimum teorii, ale w pobliżu najniższej możliwej sytuacji w sytuacjach kodowania narożnego. Nie sądzę, że dostanę tę pracę.
Będzie widoczny dla innych klas w tej samej przestrzeni nazw, nie tylko w pliku. Większość wyliczeń w BCL jest zadeklarowanych poza klasą, tak jak w podanym przykładzie (z wyjątkiem tego, że są one publiczne). Pytanie brzmi, dlaczego * nie chcesz * ogłosić takiego wyliczenia? – Groo
Warto sprawdzić, czy ktoś pracował z kontrolą dostępu java, a klasy nie są w 100% formą public class A {private String field; public method() {}} domyślnie. –
@Groo: Tak, to oczywiście –