Encapsulamento
Encapsulamento é, essencialmente, um método de organização de dados. Consiste em organizar dados e métodos na forma de classes, de modo que todo o programa seja baseado em classes e os dados e métodos fiquem encapsulados nessas classes. Esse encapsulamento fornece uma maneira de controlar o acesso ao estado interno de um objeto, promovendo modularidade, manutenibilidade e segurança em um sistema de software.
No encapsulamento, utilizam-se os modificadores de acesso como public
, private
e protected
para ocultar a maioria dos campos e métodos de uma classe e expor apenas aqueles que precisam ser utilizados externamente.
Como a maior parte dos dados é inacessível diretamente fora da classe, utilizam-se getters e setters para acessar ou modificar os dados.
Um bom exemplo é uma classe Customer
, que define o cliente de um banco:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
No exemplo acima, nenhum campo é acessível ou modificável diretamente de fora. Em vez disso, você utiliza métodos como Deposit
e Withdraw
para modificar o valor sempre que necessário. Da mesma forma, para acessar o valor do saldo, utiliza-se o método getBalance
.
O uso da palavra-chave public
geralmente é desencorajado, a menos que seja necessário.
Para lembrar, caso queiramos manter um campo inacessível de fora da classe, mas acessível pelas classes derivadas, podemos usar o modificador de acesso protected
.
1. Qual é o papel dos modificadores de acesso na encapsulação em C#?
2. Qual dos seguintes especificadores de acesso deve ser utilizado com menos frequência para preservar a encapsulação?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you provide an example of encapsulation in code?
Why is using public fields discouraged in encapsulation?
How do getters and setters improve security?
Awesome!
Completion rate improved to 2.04
Encapsulamento
Deslize para mostrar o menu
Encapsulamento é, essencialmente, um método de organização de dados. Consiste em organizar dados e métodos na forma de classes, de modo que todo o programa seja baseado em classes e os dados e métodos fiquem encapsulados nessas classes. Esse encapsulamento fornece uma maneira de controlar o acesso ao estado interno de um objeto, promovendo modularidade, manutenibilidade e segurança em um sistema de software.
No encapsulamento, utilizam-se os modificadores de acesso como public
, private
e protected
para ocultar a maioria dos campos e métodos de uma classe e expor apenas aqueles que precisam ser utilizados externamente.
Como a maior parte dos dados é inacessível diretamente fora da classe, utilizam-se getters e setters para acessar ou modificar os dados.
Um bom exemplo é uma classe Customer
, que define o cliente de um banco:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
No exemplo acima, nenhum campo é acessível ou modificável diretamente de fora. Em vez disso, você utiliza métodos como Deposit
e Withdraw
para modificar o valor sempre que necessário. Da mesma forma, para acessar o valor do saldo, utiliza-se o método getBalance
.
O uso da palavra-chave public
geralmente é desencorajado, a menos que seja necessário.
Para lembrar, caso queiramos manter um campo inacessível de fora da classe, mas acessível pelas classes derivadas, podemos usar o modificador de acesso protected
.
1. Qual é o papel dos modificadores de acesso na encapsulação em C#?
2. Qual dos seguintes especificadores de acesso deve ser utilizado com menos frequência para preservar a encapsulação?
Obrigado pelo seu feedback!