Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
La encapsulación es una de las tres características básicas de la programación orientada a objetos (OOP) (encapsulación, herencia, polimorfismo). Se refiere a combinar datos (propiedades) y métodos (funciones) para operar estos datos en una unidad (clase) independiente, ocultar los detalles internos del objeto tanto como sea posible y solo exponer la interfaz al mundo exterior. El propósito de esto es proteger los datos del objeto, evitar que el código externo acceda directamente a las estructuras de datos internas del objeto, reducir los errores y simplificar la complejidad.
Usando clase : Al definir una clase, establezca los miembros de datos (propiedades) como privados o protegidos y establezca los métodos para operar estos datos como públicos. De esta manera, el código externo no puede acceder directamente a los miembros privados de la clase, solo puede acceder a ellos indirectamente a través de métodos públicos.
modificador de acceso:
public
: Accesible mediante cualquier código externo.protected
: Solo se puede acceder en la propia clase y en las clases derivadas (subclases).private
: Solo se puede acceder a él dentro de la propia clase, no a las clases derivadas.constructor y destructor : Inicializa el objeto a través del constructor y limpia los recursos ocupados por el objeto a través del destructor. También forman parte de la encapsulación porque controlan el ciclo de vida del objeto.
A continuación se muestra un ejemplo simple de contenedor de C++ que muestra unRectangle
Implementación de la clase (rectangular).
- #include <iostream>
-
- class Rectangle {
- private:
- double width; // 矩形的宽
- double height; // 矩形的高
-
- public:
- // 构造函数
- Rectangle(double w, double h) : width(w), height(h) {}
-
- // 设置宽度
- void setWidth(double w) {
- width = w;
- }
-
- // 获取宽度
- double getWidth() const {
- return width;
- }
-
- // 设置高度
- void setHeight(double h) {
- height = h;
- }
-
- // 获取高度
- double getHeight() const {
- return height;
- }
-
- // 计算面积
- double getArea() const {
- return width * height;
- }
- };
-
- int main() {
- Rectangle rect(5.0, 10.0);
- std::cout << "Rectangle area: " << rect.getArea() << std::endl;
- rect.setWidth(7.0);
- std::cout << "New Rectangle area: " << rect.getArea() << std::endl;
- return 0;
- }
En este ejemplo,Rectangle
generalwidth
yheight
Las propiedades se vuelven privadas y el código externo no puede acceder a ellas directamente.En su lugar, utilizamos métodos públicos comosetWidth
、getHeight
ygetArea
) para acceder y modificar estas propiedades privadas. Este método implementa la encapsulación de datos y proporciona una interfaz clara para uso externo.