Java
Teoría
Teoría
  • Introducción a Java
  • Configuración del entorno de desarrollo de Java
  • Primeros pasos en Java
  • Programación orientada a objetos (OOP)
  • Modificadores en Java
  • Encapsulación en Java
  • Procesos en Java
  • Modelo - Vista - Controlador en Java
  • Colecciones en Java
  • Listas enlazadas
  • Java Swing
    • Java Swing
    • Contenedores y Componentes
    • JFrame explicado
    • JPanel explicado
    • Layouts explicado
    • Manejo de Eventos
    • Creación de figuras
Powered by GitBook
On this page
  • Modificadores de acceso
  • Modificador final
  • Modificadores de clase
  • Modificadores de Método
  • Modificadores de Atributo
  • Modificador interface
  • Modificar enum
  • Modificador package
  • Ejemplo

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.

Modificador
Descripción y Uso

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: 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: Indica que una interfaz define un conjunto de métodos abstractos que deben ser implementados por las clases que la implementen.

Modificar enum

  • enum: Define un tipo de dato enumerado que consiste en un conjunto fijo de constantes predefinidas.

Modificador 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.

// Clase principal
public class Principal {
    public static void main(String[] args) {
        // Crear una instancia de la clase Persona
        Persona persona = new Persona();

        // Acceso a los atributos y métodos de la clase Persona
        persona.nombre = "Alice"; // Acceso a un atributo público
        // persona.edad = 30; // Esto generaría un error ya que edad es privado

        // Llamada a métodos públicos
        persona.saludar(); // Método público

        // persona.despedirse(); // Esto generaría un error ya que despedirse es privado
    }
}

// Clase Persona
class Persona {
    // Atributo público
    public String nombre;

    // Atributo privado
    private int edad;

    // Constructor
    public Persona() {
        this.edad = 0;
    }

    // Método público
    public void saludar() {
        System.out.println("Hola, soy " + nombre + " y tengo " + edad + " años.");
    }

    // Método privado
    private void despedirse() {
        System.out.println("Adiós.");
    }
}
PreviousProgramación orientada a objetos (OOP)NextEncapsulación en Java

Last updated 1 year ago