El siguiente es un resumen para mostrar la declaración, inicialización y alcance de Java.
- Las variables definidas en el bloque try no son visibles en el bloque catch.
- No puede pasar parámetros cuando implementa una interfaz mediante una clase anónima.
- Los constructores no pueden devolver nada. Ni siquiera vacío.
- Cada enumeración tiene un método values () que devuelve una matriz de todos los valores en esa enumeración en el orden en que están definidos.
- System.out.println (0x10 + 10 + 010); Los valores hexadecimales se pueden denotar con el prefijo 0x (cero y ‘x’ mayúscula o minúscula), por lo que 0x10 equivale a 16 decimales. Los valores octales se pueden denotar con el prefijo 0 (cero), por lo que 010 es equivalente a 8 decimales. La expresión completa se evaluará a 34 (16 + 10 + 8).
- Las variables no se pueden declarar sincronizadas. Solo los métodos pueden declararse sincronizados.
- Cualquier clase puede declararse abstracta.
- Los métodos no estáticos pueden acceder a métodos estáticos y no estáticos de una clase.
- Solo se puede definir una clase pública en un archivo.
- Para construir una clase Base, es necesario construir su superclase primero. Por lo tanto, se debe llamar a algún constructor de la superclase. O lo llama explícitamente o el compilador agregará super () (es decir, sin constructor de argumentos) como la primera línea del constructor de subclase. Ahora, si la superclase no tiene un constructor sin argumentos, la llamada super () fallará. En lugar de llamar a super (…), también puede llamar a otro constructor de la clase base en la primera línea.
- A diferencia de los métodos, un constructor no puede ser abstracto, estático, final, nativo o sincronizado. Un constructor no se hereda, por lo que no es necesario declararlo final y nunca se podría implementar un constructor abstracto. Un constructor siempre se invoca con respecto a un objeto, por lo que no tiene sentido que un constructor sea estático. No hay una necesidad práctica de sincronizar un constructor, porque bloquearía el objeto en construcción, que normalmente no está disponible para otros hilos hasta que todos los constructores del objeto hayan completado su trabajo. La falta de constructores nativos es una elección de diseño de lenguaje arbitrario que facilita que una implementación de la máquina virtual Java verifique que los constructores de superclase siempre se invocan correctamente durante la creación de objetos.
- La construcción ‘{}’ es una declaración compuesta. La declaración compuesta puede contener cero o más declaraciones arbitrarias. Por tanto, {{}}, que es una declaración compuesta que contiene una declaración que es una declaración compuesta que no contiene ninguna declaración, es legal.
- ‘static’ y ‘final’ son modificadores válidos para declaraciones de ‘variable’ y ‘método’ dentro de una clase.
- Los modificadores ‘transitorios’ y ‘volátiles’ solo son válidos para ‘variables’.
- ‘abstracto’ y ‘nativo’ solo son válidos para ‘métodos’.
- Nota: una clase solo puede tener como modificadores ‘final’, ‘abstract’ y ‘public’.
- Una clase puede extenderse a menos que se declare final. Si bien se declara un método, estático generalmente implica que también es final, esto no es cierto para las clases.
- Una clase interna puede declararse estática y aún así extenderse. Note la distinción. Para las clases, final significa que no se puede extender, mientras que para los métodos, final significa que no se puede reemplazar en una subclase.
- La palabra clave nativa solo se puede usar en métodos, no en clases y variables de instancia.