Ámbito predeterminado en Java

A medida que sus aplicaciones Java se vuelven más complejas, la necesidad de considerar el alcance se hace cada vez más importante. La razón principal es que se puede introducir inadvertidamente un error en su aplicación al no observar las reglas de alcance.

Esto puede ser el resultado de un campo u otro miembro que se utilizan de forma incorrecta por la aplicación (por ejemplo, agregar un valor de datos incorrectos o acceder a un método en el momento equivocado, o con datos incorrectos). Además, de alcance incorrecta puede dejar la puerta abierta para los de afuera para interactuar con su aplicación de manera imprevista (como un virus).

El ámbito predeterminado se produce cuando no se asigna específicamente un ámbito a un elemento de la clase. Debido a que muchos desarrolladores de Java no tienen idea de lo que el ámbito predeterminado es para algunos elementos (y el uso de un ámbito predeterminado significa que el código no está documentado), no se utiliza muy a menudo.

Aun así, lo que necesita saber cuál es el ámbito predeterminado es para diversos elementos, ya que algunos desarrolladores de Java no confían en él. Sin embargo, antes de poder comprender el alcance predeterminado, debe tener en cuenta visibilidad - la medida de que los elementos de aplicación pueden ver a un miembro. Java proporciona los siguientes niveles de visibilidad (en orden general de encapsulación):

  • Paquete: El contenedor se utiliza para mantener un número de clases. Cuando se trabaja con una estructura de directorios simple, como los ejemplos de este libro hacen, el paquete es un directorio que contiene una serie de archivos .class.

  • Clase: Una clase normalmente reside en un solo archivo .java que se compila en un archivo .class. Contiene una declaración de clase única.

  • Método: Un elemento puede residir en la clase o como parte de un método. El método actúa como un contenedor para mantener el elemento.

  • Bloque: Un elemento puede residir dentro de un bloque de código, tal como un bucle for.

Ámbito de aplicación depende en parte de la ubicación utilizada para declarar un elemento. Por ejemplo, una variable que se define dentro de un bloque (tal como un bucle for) sólo es visible dentro de ese bloque. Cuando intenta utilizar la variable fuera del bloque, Java muestra una excepción. Tomando en cuenta la visibilidad, esta tabla se describen los distintos niveles de alcance en el entorno Java.

Java reglas de ámbito
Visibilidadprivado(por defecto)protegidopúblico
Accesible desde la claseXXXX
Accesible desde el paqueteXXX
Accesible desde cualquier clase hijaXX
Accesible en cualquier lugarX

La tabla muestra como el ámbito predeterminado encaja en el esquema de las cosas. Por ejemplo, si se declara un método mediante el ámbito predeterminado, cualquier método se puede utilizar siempre que reside en el mismo paquete. Además, si crea una clase que hereda de la clase que contiene el método, la subclase puede utilizar el método siempre que reside en el mismo paquete.

Sin embargo, si existe la subclase fuera del paquete actual, no puede utilizar el método. En definitiva, el ámbito predeterminado es un poco más restrictivo que el ámbito protegido, pero menos restrictivo que el ámbito privado.




» » » » Ámbito predeterminado en Java