minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
O encapsulamento é um dos três recursos básicos da programação orientada a objetos (OOP) (encapsulamento, herança, polimorfismo). Refere-se à combinação de dados (propriedades) e métodos (funções) para operar esses dados em uma unidade independente (classe), ocultando ao máximo os detalhes internos do objeto e expondo apenas a interface ao mundo externo. O objetivo disso é proteger os dados do objeto, evitar que códigos externos acessem diretamente as estruturas de dados internas do objeto, reduzir erros e simplificar a complexidade.
Usando classe : ao definir uma classe, defina os membros dos dados (propriedades) como privados ou protegidos e defina os métodos para operar esses dados como públicos. Dessa forma, o código externo não pode acessar diretamente os membros privados da classe, mas só pode acessá-los indiretamente por meio de métodos públicos.
modificador de acesso:
public
: Acessível por qualquer código externo.protected
: Só pode ser acessado na própria classe e nas classes derivadas (subclasses).private
: só pode ser acessado dentro da própria classe, não em classes derivadas.Construtor e destruidor : Inicialize o objeto por meio do construtor e limpe os recursos ocupados pelo objeto por meio do destruidor. Eles também fazem parte do encapsulamento porque controlam o ciclo de vida do objeto.
Abaixo está um exemplo simples de wrapper C++ mostrando umRectangle
Implementação da classe (retangular).
- #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;
- }
Neste exemplo,Rectangle
em geralwidth
eheight
As propriedades tornam-se privadas e o código externo não pode acessá-las diretamente.Em vez disso, usamos métodos públicos comosetWidth
、getHeight
egetArea
) para acessar e modificar essas propriedades privadas. Este método implementa encapsulamento de dados e fornece uma interface clara para uso externo.