La encapsulación – ¿qué es esto? La encapsulación en la programación
La encapsulación – esta es una de las tres características principales de la programación orientada a objetos (POO). Los otros dos – polimorfismo y la herencia. Juntos forman el marco de la OLP, que establece una serie de características de la escritura de programas en diferentes idiomas, el uso de estos tres principios. lenguajes orientados a objetos, a su vez, están obligados a seguir estrictamente ellos.
Conceptos básicos de la POO
Programación orientada a objetos en tres pilares de su creación:
- Polimorfismo, responder a la pregunta de cómo un lenguaje de programación en particular se ocupa de los objetos que tienen una relación entre sí, de una manera similar.
- Herencia, dando una respuesta, cómo es la estimulación de la utilización de código reutilizable.
- Encapsulación, que es la respuesta a la pregunta de ocultar la aplicación se lleva a cabo, por lo que la integridad de los datos.
terminología
Encapsulación (programación) – es el uso de modificadores de acceso con el fin de ocultar partes de código del usuario final. Debajo de ella, a su vez, significa que los sitios de desarrolladores o patrimoniales.
La esencia del concepto de "encapsulación"
La definición especifica que mediante encapsulación significaba ocultar todo o parte del código del programa. La esencia del concepto de "encapsulación" es manipular modificadores de acceso. Esto significa que el desarrollador puede decidir qué propiedades, métodos y clases estará abierta a la clase de cliente, y lo que – están ocultos.
modificadores de acceso
Hay modificadores de acceso, que, entre otras cosas, es capaz de encapsulación manipulyarivat (programación Java):
- pública ( "público" – pública, el acceso abierto) – comparten tanto las clases y objetos actuales, y con el mundo exterior;
- privada ( "prayvat" -,, acceso privado oculta privada) – cerró el acceso, la esencia de lo que es totalmente lo contrario de la anterior. Proporciona acceso sólo de la clase actual;
- protegida ( "protekted" – protegido, el acceso semioculta) – Acceso a la clase actual y sus derivados;
- por defecto – modificador de acceso no especificado significa que el campo / método puede ser visto por todas las clases actuales en el paquete.
En el lenguaje C # ( "Si Sharp"), además de lo anterior (excepto el último), todavía hay modificadores:
- interna ( "interna" – acceso interno) – accesibilidad en el conjunto actual, acceso interior a todos los demás casos;
- interna protegida ( "protekted interno" – Acceso interno protegido) – unión de dos modificadores en uno en el que las propiedades manifiestos de ambos.
El papel de encapsulación
mecanismo de encapsulación elimina la influencia externa sobre el código y el mal uso de los datos incorporados en el mismo. Esto se logra mediante la combinación del código y los datos en una sola.
Objeto y encapsulación
La combinación de la implementación de un módulo de software y los datos incorporados en el código, la programación se llama un objeto. La esencia de su conexión con la encapsulación es que un procedimiento de este tipo permite mantener y asegurar la integridad de la operación del mecanismo.
La ventaja de la encapsulación
La encapsulación – una manera de simplificar el proceso de codificación. Numerosas líneas de código son "detrás de escena", y en el trabajo de la clase principal se van a instancias de objeto.
La idea de protección de datos
La encapsulación – es también un mecanismo que da cuenta de la idea de protección de datos. la lógica del programa de programación orientada a objetos se construye sobre la base de lo que la mayoría de los datos se modificador de acceso oculto privado (privado, privado) o protegido (protegido). El mundo exterior, el cliente accidental o deliberadamente no dañará la implementación de un módulo de software. Porque, de hecho, hace que sea muy fácil ni siquiera a propósito, encapsulación – este es un muy buen principio.
unidad de encapsulación
Class, como unidad básica de encapsulación y describe los datos comprende un código, que es capaz de operar en estos datos. Él es también la base para la construcción del objeto. Este último, a su vez, se presenta como un ejemplo.
También se utiliza la siguiente terminología:
- los miembros – este es el código y los datos incluidos en la clase;
- campos o variables de instancia – los llamados datos que define la clase;
- funciones miembro – contienen el código en sí. Las funciones miembro – un nombre común. Un caso especial – métodos.
Encapsulación ejemplo específico
La encapsulación (programación) ejemplo:
* Nota:
Descripción – una descripción del método / propiedad / variable, es decir al comentar sobre lo que realmente sucede en el programa. Se demuestra por medio de etiquetas de apertura / cierre
using System;
OOPLibrary.Auto espacio de nombres
{
///
/// Esta clase está destinado a describir la acción del coche
///
Auto clase pública
{
///
/// variables creadas con el fin de escribir en ella, cuántos años el coche, ya que la interferencia externa en el promotor considera superflua
/// modificador está marcado privado, es decir, cerrada, de acceso privado (ver. La descripción anterior).
///
_age int privado;
///
/// un valor booleano (sólo dos valores posibles – Sí o No), que describe si el vehículo se está moviendo en el momento
/// También debe estar abierta para el usuario final, quien quiera que fuese. Por lo tanto, esta variable se le asigna un modificador de acceso privado "prayvat"
///
_isMoving bool privado;
///
/// Esta variable de cadena debe contener información sobre el color del coche. Se puede cambiar por influencias externas
/// porque para el modificador de color seleccionado de libre acceso "público".
///
Color de la cadena pública;
///
/// En este caso particular, se supone que el nombre del coche, también, se puede cambiar
/// asignado un modificador de público (acceso abierto para todos, independientemente de su clase o ensamblaje).
///
Nombre cadena pública;
///
/// Abre el constructor de la clase, y todas las propiedades de la variable expresada y fijar un poco más temprano, obtener sus valores
///
Auto pública ()
{
_age = 5;
_isMoving = false;
Color = "Purple";
Name = "Skoda Octavia";
}
///
/// El método se da cuenta de un valor de retorno de la edad de automóviles. ¿Por qué es necesario?
/// modificador de acceso privado no hacen posible que los cambios del cliente.
///
/// Devuelve la edad del coche.
public string GetAge ()
{
volver "Por el momento, el equipo seleccionado" + + "_age años.";
}
///
/// Si el vehículo no está en movimiento, este método implementa el inicio del movimiento. Los cheques oboznalsya variable, el estado del vehículo (viajando o no), y, dependiendo de los resultados, se muestra la acción / mensaje apropiado.
///
public void Inicio ()
{
si (_isMoving)
{
Console.WriteLine ( "El movimiento ya se ha iniciado");
}
otro
{
_isMoving = true;
Console.WriteLine ( "Ready, Set .. Ir fuera!");
}
}
///
/// Si se inició el movimiento, este método se lo impide. La misma lógica del programa como en el caso anterior, ya considerada.
///
Public void stop ()
{
si (_isMoving)
{
_isMoving = false;
Console.WriteLine ( "parada de la máquina");
}
otro
{
Console.WriteLine ( "coche de error y así se detiene, no se mueva");
}
}
///
/// Se puso en práctica giro a la izquierda, si hay un vehículo
///
MoverIzquierda public void ()
{
si (_isMoving)
{
Console.WriteLine ( "gire a la izquierda se hacen");
}
otro
{
Console.WriteLine ( "vehículo de error es función de rotación estacionario no está disponible actualmente.");
}
}
///
/// Un método similar con el giro a la derecha
///
MoverDerecha public void ()
{
si (_isMoving)
{
Console.WriteLine ( "girar a la derecha se aplicó con éxito");
}
otro
{
Console.WriteLine ( "Error El coche no se ha movido desde el punto girando a la derecha se en el momento de la acción, es imposible llevar a cabo ..");
}
}
}
}