Saltar al contenido principal
Documentos
Java keywordsMatrices JavaProgramación orientada a objetos en JavaJava File HandlingIntroducción a JavaConceptos básicos del lenguaje Java

Java Modifiers

Los modificadores Java son palabras clave que se utilizan para cambiar las propiedades de clases, métodos y variables. Definen la accesibilidad, el comportamiento y el alcance de estos componentes. Los modificadores se dividen en dos categorías: modificadores de acceso y modificadores de no acceso.

Modificadores de acceso

Los modificadores de acceso controlan la visibilidad de clases, métodos y variables. Los cuatro modificadores de acceso en Java son

  • público: El miembro es accesible desde cualquier otra clase.
  • protegida: El miembro es accesible dentro de su propio paquete y por las subclases.
  • por defecto (sin palabra clave): El miembro sólo es accesible dentro de su propio paquete.
  • privado: El miembro sólo es accesible dentro de su propia clase.

Ejemplo de modificadores de acceso


public class Example {
    public int publicVar;
    protected int protectedVar;
    int defaultVar; // default access
    private int privateVar;
    
    public void display() {
        System.out.println("Public Variable: " + publicVar);
        System.out.println("Protected Variable: " + protectedVar);
        System.out.println("Default Variable: " + defaultVar);
        System.out.println("Private Variable: " + privateVar);
    }
}

En este ejemplo, publicVar es accesible desde cualquier lugar, protectedVar es accesible dentro del paquete y las subclases, defaultVar es accesible dentro del paquete, y privateVar es accesible sólo dentro de la clase Example.

Modificadores sin acceso

Los modificadores sin acceso proporcionan funcionalidades adicionales, como controlar la herencia, garantizar la inmutabilidad y definir propiedades especiales. Algunos modificadores comunes de no acceso son:

  • estática: Indica que el miembro pertenece a la clase, y no a instancias de la clase.
  • final: Se utiliza para declarar constantes, evitar la sobreescritura de métodos y la herencia.
  • abstracto: Se utiliza para declarar clases y métodos abstractos.
  • sincronizados: Se utiliza en multihilo para garantizar que sólo un hilo accede a un método o bloque.
  • volátil: Garantiza que el valor de una variable se lea siempre de la memoria principal.
  • transitorio: Evita la serialización de los campos de clase.

Ejemplo de modificadores de no acceso


public class NonAccessExample {
    public static final int CONSTANT = 100;

    public static void main(String[] args) {
        System.out.println("Constant Value: " + CONSTANT);
    }
}

En este ejemplo, CONSTANT es una variable estática y final, lo que significa que pertenece a la clase y no se puede modificar.

Consejos y buenas prácticas

  • Utiliza los modificadores de acceso con prudencia: Restringe el acceso todo lo posible para proteger tus datos. Utiliza private para los campos, a menos que sea necesario acceder a ellos fuera de la clase.
  • Uso estático: Utiliza static para los métodos de utilidad y las constantes que no requieran el estado del objeto.
  • Final para Constantes: Declara constantes utilizando final y static para evitar que se modifiquen.
  • Clases abstractas: Utiliza las clases abstract como clases base que no deben instanciarse directamente.
  • Sincronizado para la seguridad de las roscas: Utiliza synchronized para garantizar la seguridad de la rosca cuando sea necesario, pero ten en cuenta las posibles repercusiones en el rendimiento.
  • Volátil para la visibilidad: Utiliza volatile para las variables compartidas entre hilos, para garantizar la visibilidad de los cambios.
  • Transitorio para Serialización: Utiliza transient para excluir campos de la serialización cuando no deban formar parte del objeto serializado.

Aprende Java Essentials

Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.
Empieza a aprender gratis