Nivel de acceso


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

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 . La reducción del nivel de acceso es un método eficaz para limitar los modos de falla , el tiempo de depuración y 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 borrado por ninguna función sin tener un nivel de acceso suficiente.

Los dos niveles de acceso más comunes son el público y el privado , que denotan, respectivamente; permiso en todo el alcance del programa, o permiso solo dentro de la clase correspondiente. Un tercero, protegido , extiende los permisos a todas las subclases de la clase correspondiente. Los modificadores de niveles de acceso se utilizan 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 ocurre un error, el culpable podría estar dentro de 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 las restricciones de acceso, todas las modificaciones a su valor deben ocurrir a través de funciones definidas dentro de la clase. Por lo tanto, el error está contenido estructuralmente dentro de la clase. A menudo hay un solo archivo fuente para cada clase, lo que significa que la depuración solo requiere la evaluación de un solo 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 Java Coffee Break Q&A [5]

saldo_banco de clase pública
{	propietario de cadena pública;	saldo int privado;	public bank_balance (nombre de cadena, dólares internacionales)	{	propietario = nombre;	si (dólares> = 0)	saldo = dólares;	demás	dólares = 0;	}	public int getBalance ()	{	devolver el saldo;	}	public void setBalance (dólares internacionales)	{	si (dólares> = 0)	saldo = dólares;	demás	dólares = 0;	}
}

Aquí, el equilibrio de la variable imperativa se define como un int privado . Esto asegura 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. ^ "Control del acceso a los miembros de una clase (Tutoriales de Java ™> Aprendizaje del 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. ^ http://www.javacoffeebreak.com/faq/faq0002.html