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

Suggested prompts:

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

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