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
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!