static Fields prohibidos en las clases interiores: rationale
java prohíbe la declaración de los campos y métodos estatales dentro de las clases internos (o las clases ordinarias) a sus clases inherentes inherentes. A diferencia de las clases anidadas estáticas, están vinculadas a casos de su clase de cierre. Esto significa que cada instancia de una clase interna tiene una asociación única con una instancia específica de la clase de adjunto. Como resultado, permitir que los campos estáticos dentro de las clases internas crearían ambigüedad en términos de qué instancia pertenece el campo estático. clase Innclass { static int i = 100; // Error de compilación } }
Si los campos estáticos se permitieran en las clases internas, no habría una forma clara de determinar a qué instancia de clase externas al campo estático al que pertenece. Esta ambigüedad podría conducir a errores de tiempo de ejecución y un comportamiento inconsistente.
además, permitiendo que los campos estáticos dentro de las clases internas contradecieran el principio de dependencia basada en instancias. Since inner classes rely on instances of the enclosing class, it doesn't make sense for them to have static features, which are designed to operate independently of any instance.
class OuterClass { class InnerClass { static int i = 100; // compile error } }
Clarity and consistency:
Prevent ambiguity regarding which instance a El campo estático pertenece a.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3