DEV Community

Cover image for Aplicando a Orientação a Objetos: Operações dos métodos [3/10]🧶
Majulia Carvalho
Majulia Carvalho

Posted on • Updated on

Aplicando a Orientação a Objetos: Operações dos métodos [3/10]🧶

Os métodos são manipuladores de informações que executam operações importantes para o funcionamento dos nossos programas orientados a objetos. Sabemos que eles possuem dois tipos conhecidos como construtores e destrutores responsáveis pela instanciação do objeto. Nesta publicação, veremos encapsulamento e sobrecarga para concluir a introdução dos métodos.

Construtores são métodos utilizados para instanciar objetos passando valores iniciais a ele. Destrutores são métodos que destroem um objeto em determinado momento da aplicação.

SOBRECARGA

Quando vimos construtores, pudemos perceber que podem haver vários desde que fossem passados parâmetros diferentes, e isso é a sobrecarga de um método. Em diversas situações nos vemos com a necessidade de atribuir a um método parâmetros diferentes para executar operações específicas em contextos distintos. A sobrecarga de método se aplica a métodos em geral, não sendo limitada apenas aos construtores. A seguir vemos um exemplo de uma classe Area.

exemplo de sobrecarga de método

  • Para criar sobrecargas de métodos, devemos sempre preservar o nome em questão. No exemplo o método se chama CalculaArea;

  • Quando uma sobrecarga é feita, mudamos apenas os parâmetros, podendo acrescentar ou retira-los. No exemplo acima, a sobrecarga que calcula o quadrado possui apenas um parâmetro denominado altura enquanto a sobrecarga que calcula o retângulo possui dois determinados como valorBase e valorAltura. Os parâmetros podem ter diferentes tipos (int, double, etc.)

  • Como vamos saber de qual sobrecarga de método estamos utilizando ao realizar determinada ação? As sobrecargas devem ser criadas de forma cautelosa e, basta atribuir ao objeto a mesma sequência de parâmetros presentes na sobrecarga criada. Ao calcular a área do quadrado, passaremos apenas um parâmetro que representa a altura, e área do retângulo informaremos a base e a altura.

Conhecendo sobrecargas, conseguimos aplicar o conceito de reuso anteriormente citado, já que com a elas nós só alteramos a assinatura dos métodos e evitamos a geração de código repetida e desnecessária.
‎ ‎

ENCAPSULAMENTO

Em certos momentos, nós precisamos proteger atributos de possíveis alterações que possam atingir a integridade do programa. Como antes visto, o encapsulamento é uma forma de privar membros sensíveis aos contatos externos, protegendo códigos sensíveis de manipulações indesejadas. O encapsulamento é dedicado a manter estados consistentes de nossos objetos. No C#, o ele pode ser feito manualmente, especificado a seguir, com properties e autoproperties, assuntos futuros.

Exemplo de encapsulamento

  • Na classe produto, temos três atributos privados. Isso quer dizer que apenas a classe destes atributos podem modificar seus valores. Por este motivo, existem quatro métodos.

  • Atributos privados não podem ser alterados e por esta razão, foram criados quatro métodos a fim de obter e atribuir valores dos atributos.

  • Os chamados GetNome e GetPreco são membros que fornecem os valores dos objetos, já que os valores estão privados. Quando um objeto for instanciado, basta chamá-los para que a operação seja realizada.

  • Os chamados SetNome e SetPreco são responsáveis por atribuir novos valores aos atributos.

Com o encapsulamento efetuado, se tornou necessário utilizar métodos para acessar os valores. O encapsulamento manual é utilizado geralmente quando existem condições e verificações que precisam ser atendidas para que o valor possa ser alterado, aumentando o nível de segurança e respeitando a regra de negócio.

Um exemplo disso é se colocássemos uma condição de integridade para validar o SetNome.

Como este método altera o nome do produto, poderíamos inserir uma verificação de quantidade de caracteres. A alteração só poderia ser feita se o novo nome que está sendo atribuído tivesse mais de 5 caracteres ou não fosse nulo, por exemplo.

Você pode ler mais sobre níveis de acessibilidade no C# aqui.

Agora conseguimos realmente entender como os métodos são ferramentas poderosas quando bem utilizadas, capazes de otimizar, definir e proteger nossas aplicações. Com esta perspectiva poderemos prosseguir em outros pilares da orientação a objetos.

Top comments (0)