stringtranslate.com

Nivel de acceso

En informática y programación informática , el nivel de acceso denota el conjunto de permisos o restricciones proporcionados a un tipo de datos . Reducir el nivel de acceso es un método eficaz para limitar los modos de error , reducir el tiempo de depuración y simplificar la complejidad general del sistema. Restringe la modificación de variables solo a los métodos definidos dentro de la interfaz de la clase. Por lo tanto, se incorpora a muchos patrones fundamentales de diseño de software . En general, un objeto determinado no puede ser creado, leído, actualizado o eliminado por ninguna función sin tener un nivel de acceso suficiente.

Los dos niveles de acceso más comunes son público y privado , que denotan, respectivamente; permiso en todo el alcance del programa, o permiso solo dentro de la clase correspondiente. Un tercero, protected , extiende los permisos a todas las subclases de la clase correspondiente. Los modificadores de niveles de acceso se usan comúnmente en Java [1] así como en C#, que además proporciona el nivel interno . [2] En C++, la única diferencia entre una estructura y una clase es el nivel de acceso predeterminado, que es privado para las clases y público para las estructuras. [3]

Para ilustrar el beneficio: considere una variable pública a la que se puede acceder desde cualquier parte de un programa. Si se produce un error, el culpable podría estar en cualquier parte del programa, incluidas varias subdependencias. En una base de código grande, esto conduce a miles de fuentes potenciales. Alternativamente, considere una variable privada. Debido a restricciones de acceso, todas las modificaciones a su valor deben ocurrir mediante funciones definidas dentro de la clase. Por tanto, el error está contenido estructuralmente dentro de la clase. A menudo solo hay un archivo fuente para cada clase, lo que significa que la depuración solo requiere la evaluación de un único archivo. Con suficiente modularidad y un nivel de acceso mínimo, las bases de código grandes pueden evitar muchos desafíos asociados con la complejidad. [4]

Ejemplo: clase de saldo bancario

Obtenido de Preguntas y respuestas sobre Java Coffee Break [5]

saldo_bancario de clase pública{propietario de cadena pública;saldo privado;saldo_bancario público (nombre de cadena, int dólares){propietario = nombre;si (dólares >= 0)saldo = dólares;demásdólares =0;}público int getBalance(){saldo de devolución;}conjunto vacío públicoSaldo(int dólares){si (dólares >= 0)saldo = dólares;demásdólares = 0;}}

Aquí, el saldo de la variable imperativa se define como un int privado . Esto garantiza que otras clases, métodos y funciones no puedan sobrescribir accidentalmente el saldo variable. En su lugar, deben acceder a la interfaz de la clase bank_balance , cuyos métodos garantizan que el saldo no pueda caer por debajo de 0.

Referencias

  1. ^ "Controlar el acceso a los miembros de una clase (Tutoriales de Java > Aprender el lenguaje Java > Clases y objetos)". docs.oracle.com . Consultado el 22 de noviembre de 2016 .
  2. ^ "Modificadores de acceso (referencia de C#)". msdn.microsoft.com . Consultado el 22 de noviembre de 2016 .
  3. ^ "Amistad y herencia - Tutoriales de C++". www.cplusplus.com . Consultado el 23 de noviembre de 2016 .
  4. ^ "¿Por qué necesitamos variables privadas?". softwareengineering.stackexchange.com . Consultado el 22 de noviembre de 2016 .
  5. ^ "Preguntas y respuestas: ¿Cuál es la diferencia entre variables públicas, privadas y protegidas?".