5.4. Introdução à programação orientada a objetos em Dart: Encapsulamento

Página 60

5.4. Introdução à programação orientada a objetos em Dart: Encapsulamento

Antes de mergulharmos profundamente no conceito de encapsulamento em Dart, é fundamental entendermos a programação orientada a objetos (POO). A POO é um paradigma de programação baseado no conceito de "objetos", que podem conter dados e código: dados na forma de campos (frequentemente conhecidos como atributos ou propriedades) e código, na forma de procedimentos (frequentemente conhecidos como métodos).

Um dos principais princípios da Programação Orientada a Objetos é o Encapsulamento. O Encapsulamento é um mecanismo de ocultação de detalhes de implementação de um objeto. Em outras palavras, ele protege o código interno e os dados internos do objeto de serem acessados diretamente de fora do objeto.

Em Dart, o encapsulamento é implementado usando modificadores de acesso. Existem dois tipos de modificadores de acesso em Dart - 'public' e 'private'. Por padrão, todas as classes, variáveis, métodos, etc., são publicamente acessíveis, a menos que sejam explicitamente declarados como privados. Para tornar uma variável ou método privado em Dart, prefixamos seu nome com um sublinhado '_'.

Por que o Encapsulamento é importante?

O encapsulamento é um dos quatro pilares fundamentais da programação orientada a objetos (POO), e é fundamental para a manutenção do código e para a prevenção de erros. Ele ajuda a controlar a maneira como os dados são acessados ou modificados. Além disso, um objeto bem encapsulado é aquele que esconde todos os seus dados internos e impede que sejam acessados diretamente, forçando o acesso através de métodos. Isso é conhecido como 'ocultação de dados'.

Exemplo de Encapsulamento em Dart

Para ilustrar o conceito de encapsulamento, considere o exemplo de uma classe 'BankAccount'. Esta classe tem duas propriedades - 'accountNumber' e '_balance'. Aqui, '_balance' é uma variável privada, o que significa que ela não pode ser acessada ou modificada diretamente de fora da classe.

class BankAccount {
  int accountNumber;
  double _balance;

  BankAccount(this.accountNumber, this._balance);

  double get balance => _balance;

  set balance(double newBalance) {
    if (newBalance >= 0) {
      _balance = newBalance;
    } else {
      print('Invalid balance');
    }
  }
}

Neste exemplo, a única maneira de acessar ou modificar o saldo é através dos métodos 'get' e 'set'. Isso garante que o saldo não possa ser definido para um valor negativo, porque o método 'set' verifica se o novo saldo é maior ou igual a zero antes de modificar a variável '_balance'.

Conclusão

Em resumo, o encapsulamento é um princípio crucial da programação orientada a objetos em Dart. Ele permite que ocultemos os detalhes de implementação de um objeto e controlemos o acesso aos seus dados. Isso torna o código mais seguro e mais fácil de manter, pois evita que os dados sejam modificados de maneira inadequada. Ao criar aplicativos com Flutter e Dart, compreender e aplicar corretamente o encapsulamento pode melhorar a qualidade do seu código e a robustez do seu aplicativo.

Now answer the exercise about the content:

O que é encapsulamento na programação orientada a objetos em Dart e por que é importante?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

615.5. Introdução à programação orientada a objetos em Dart: Herança

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text