PHP

OOPs Access Specifiers: Tipos de acceso en OOP

1. Public

El especificador de acceso «public» es uno de los tipos de acceso más comunes en la programación orientada a objetos (OOP). Cuando un miembro de una clase se declara como público, significa que ese miembro es accesible desde cualquier parte del programa, ya sea desde dentro de la clase, desde una clase derivada o desde cualquier otra clase en el programa.

Por ejemplo, si tenemos una clase llamada «Persona» con un miembro público llamado «nombre», podemos acceder a ese miembro desde cualquier parte del programa de la siguiente manera:

    
        Persona persona = new Persona();
        persona.nombre = "Juan";
    

En este ejemplo, estamos creando una instancia de la clase «Persona» y asignando el valor «Juan» al miembro «nombre». Como el miembro «nombre» es público, podemos acceder y modificar su valor sin restricciones.

2. Private

El especificador de acceso «private» es el opuesto al especificador «public». Cuando un miembro de una clase se declara como privado, significa que ese miembro solo es accesible desde dentro de la propia clase. No se puede acceder a un miembro privado desde fuera de la clase, ni siquiera desde una clase derivada.

Por ejemplo, si tenemos una clase llamada «CuentaBancaria» con un miembro privado llamado «saldo», no podemos acceder directamente a ese miembro desde fuera de la clase:

    
        CuentaBancaria cuenta = new CuentaBancaria();
        cuenta.saldo = 1000; // Esto dará un error de compilación
    

En este ejemplo, estamos intentando asignar un valor de 1000 al miembro «saldo» de la clase «CuentaBancaria». Sin embargo, como el miembro «saldo» es privado, no podemos acceder a él directamente desde fuera de la clase.

Recomendado:  Imagick floodFillPaintImage() Function: Syntax and Usage

Para acceder a un miembro privado desde fuera de la clase, generalmente se utilizan métodos públicos de la clase que permiten leer o modificar el valor del miembro privado. Estos métodos se conocen como «métodos de acceso» o «getters» y «setters».

3. Protected

El especificador de acceso «protected» es similar al especificador «private», pero con una diferencia importante. Cuando un miembro de una clase se declara como protegido, ese miembro es accesible desde dentro de la propia clase y desde cualquier clase derivada de esa clase.

Por ejemplo, si tenemos una clase llamada «Animal» con un miembro protegido llamado «nombre», podemos acceder a ese miembro desde una clase derivada de la siguiente manera:

    
        class Perro : Animal
        {
            public void ImprimirNombre()
            {
                Console.WriteLine(nombre); // Acceso al miembro protegido "nombre"
            }
        }
    

En este ejemplo, estamos creando una clase llamada «Perro» que hereda de la clase «Animal». Dentro de la clase «Perro», podemos acceder al miembro protegido «nombre» de la clase «Animal» sin restricciones.

Es importante tener en cuenta que los miembros protegidos solo son accesibles desde las clases derivadas, no desde cualquier otra clase en el programa.

4. Default

El especificador de acceso «default» (también conocido como «package-private» o «amigable») es un tipo de acceso que no se especifica explícitamente. Si no se especifica ningún especificador de acceso, el miembro se considera de acceso «default».

Un miembro con acceso «default» es accesible desde dentro del mismo paquete en el que se encuentra la clase que contiene el miembro. Sin embargo, no es accesible desde fuera del paquete, ni siquiera desde una clase derivada.

Recomendado:  PHP $ and $$: Understanding the Difference

Por ejemplo, si tenemos una clase llamada «Persona» con un miembro de acceso «default» llamado «edad», podemos acceder a ese miembro desde otra clase en el mismo paquete:

    
        class OtraClase
        {
            public void ImprimirEdad(Persona persona)
            {
                Console.WriteLine(persona.edad); // Acceso al miembro de acceso "default" "edad"
            }
        }
    

En este ejemplo, estamos creando una clase llamada «OtraClase» que se encuentra en el mismo paquete que la clase «Persona». Dentro de la clase «OtraClase», podemos acceder al miembro de acceso «default» «edad» de la clase «Persona». Sin embargo, si intentamos acceder a ese miembro desde una clase fuera del paquete, obtendremos un error de compilación.

Los especificadores de acceso en la programación orientada a objetos (OOP) son una forma de controlar la visibilidad y accesibilidad de los miembros de una clase. Los cuatro tipos de acceso más comunes son «public», «private», «protected» y «default». Cada uno de estos tipos de acceso tiene sus propias reglas y restricciones, y es importante comprender cómo funcionan para escribir código limpio y seguro.

Autor

osceda@hotmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *