Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Encapsulamento | Princípios de POO
C# Além do Básico

bookEncapsulamento

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public 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.

Note
Nota

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?

question mark

Qual é o papel dos modificadores de acesso na encapsulação em C#?

Select the correct answer

question mark

Qual dos seguintes especificadores de acesso deve ser utilizado com menos frequência para preservar a encapsulação?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 2.04

bookEncapsulamento

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public 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.

Note
Nota

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?

question mark

Qual é o papel dos modificadores de acesso na encapsulação em C#?

Select the correct answer

question mark

Qual dos seguintes especificadores de acesso deve ser utilizado com menos frequência para preservar a encapsulação?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 6
some-alt