Fui a esta entrevista para un puesto de desarrollador de software y me dieron una prueba con algunas situaciones de código de esquina y caso, con generalmente 4 opciones para elegir.
Una de las preguntas tenía una enumeración declarada fuera del alcance de la clase, revisé rápidamente la respuesta "no compila" y seguí adelante con las otras preguntas. Era algo así como:Enum declaró fuera del alcance de clase
enum Colors {BLUE,RED,GREEN}
class Test {
//other code, not really important with my question
}
Este código se compila en realidad.
Además del hecho de que una entrevista como esta (podría o no) sería útil para averiguar si uno es un buen desarrollador, lo que me preocupa es: ¿por qué declararía una enumeración como esta? ¿Por qué solo puedo hacer esto con enum? Hice algunas pruebas y descubrí que es visible dentro de la clase, pero no a otras clases.
Sidenote: Marqué realmente pobre: P. Obtuve el máximo en la teoría, pero cerca de la más baja posible en las situaciones de código de caso de esquina. No creo que consiga el trabajo.
Estará visible para otras clases en el mismo espacio de nombres, no solo dentro de un archivo. La mayoría de las enumeraciones en BCL se declaran fuera de una clase, al igual que el ejemplo que proporcionó (excepto que son públicas). Entonces la pregunta es ¿por qué * no * declaras una enumeración como esta? – Groo
Es útil comprobar si alguien trabajó con el control de acceso de Java y las clases no son 100% del formulario public class A {private String field; public method() {}} de forma predeterminada. –
@Groo: Sí, es –