Modificadores en Java
Los modificadores son palabras clave que se utilizan para controlar el acceso y la visibilidad de clases, métodos, atributos y otros elementos dentro de un programa. Los modificadores permiten establecer reglas y restricciones sobre cómo se pueden acceder y utilizar estos elementos. Hay varios tipos de modificadores en Java, que se pueden aplicar a diferentes elementos del código.
public
Accesible desde cualquier parte del programa.
protected
Accesible en su clase, en clases del mismo paquete y subclases.
(sin modificador) default
Accesible solo en su clase y clases del mismo paquete.
private
Accesible solo en su propia clase.
final
Clase no extensible, método no anulable, atributo constante.
abstract
Clase abstracta, método sin implementación (debe ser implementado por subclases).
static
Método o atributo pertenece a la clase en lugar de instancias.
synchronized
Controla la concurrencia de acceso a un método.
native
Método implementado en código nativo (fuera de Java).
transient
Atributo no se serializa al guardar el estado del objeto.
volatile
Atributo accesible de manera segura por múltiples hilos.
strictfp
Cálculos de punto flotante consistentes en todas las plataformas.
interface
Define un conjunto de métodos abstractos que deben ser implementados por las clases que la implementen.
enum
Define un tipo de dato enumerado con un conjunto fijo de constantes.
package-private
Accesible solo dentro de su propio paquete.
Modificadores de acceso
public: El elemento es accesible desde cualquier parte del programa. No hay restricciones de visibilidad.
protected: El elemento es accesible dentro de su propia clase, en clases del mismo paquete y en subclases fuera del paquete.
default (sin modificador): El elemento es accesible solo dentro de su propia clase y en clases del mismo paquete.
private: El elemento es accesible solo dentro de su propia clase.
Modificador final
final
final: Cuando se aplica a una clase, la clase no puede ser extendida (subclases). Cuando se aplica a un método, el método no puede ser anulado en subclases. Cuando se aplica a una variable, la variable es constante y no se puede cambiar una vez que se le asigna un valor.
Modificadores de clase
abstract: Indica que una clase es abstracta y no se puede instanciar. Las clases abstractas pueden tener métodos abstractos que deben ser implementados por las subclases.
final: Evita que una clase sea heredada (no puede tener subclases).
Modificadores de Método
abstract: Indica que un método no tiene implementación en la clase actual y debe ser implementado por subclases abstractas.
static: El método pertenece a la clase en lugar de a las instancias de la clase. Puede ser invocado a través del nombre de la clase.
synchronized: Controla la concurrencia de acceso a un método. Solo un hilo puede ejecutar el método sincronizado a la vez.
native: Indica que el método está implementado en código nativo (generalmente en otro lenguaje como C/C++) y no en Java.
Modificadores de Atributo
static: El atributo pertenece a la clase en lugar de a las instancias de la clase. Es compartido por todas las instancias de la clase.
transient: Indica que un atributo no debe ser serializado cuando se guarda el estado del objeto.
volatile: Indica que un atributo puede ser accedido por múltiples hilos de manera segura. Evita que las optimizaciones del compilador afecten la lectura/escritura de este atributo.
Modificador interface
interface
interface: Indica que una interfaz define un conjunto de métodos abstractos que deben ser implementados por las clases que la implementen.
Modificar enum
enum
enum: Define un tipo de dato enumerado que consiste en un conjunto fijo de constantes predefinidas.
Modificador package
package
package-private (sin modificador): Cuando no se especifica ningún modificador de acceso, el elemento es accesible solo dentro de su propio paquete.
Ejemplo
En este sencillo ejemplo podemos ver el uso de los modificadores
El atributo nombre es público y, por lo tanto, se puede acceder y modificar desde la clase Principal.
El atributo edad es privado y solo se puede acceder desde dentro de la propia clase Persona.
El método saludar es público y se puede llamar desde la clase Principal.
El método despedirse es privado y no se puede llamar desde la clase Principal.
Last updated