Métodos são uma parte fundamental da programação orientada a objetos. É por meio deles que alteramos e consultamos atributos dos nossos objetos. Sendo assim, é fundamental entender o conceito e claro, saber como implementar métodos. No post de hoje além de abordar a parte conceitual, também vou apresentar exemplos de métodos simples em Java e em Python, lembrando que isso é possível em qualquer linguagem que forneça suporte a POO.
O que são métodos?
Como falado brevemente na introdução do post, métodos são o meio que utilizamos para ler, modificar e definir os atributos de um objeto. Estão sempre associados a uma classe e, desta forma, podem ter seu escopo definido para poderem ser acessíveis a diferentes níveis: podemos definir métodos que somente podem ser acessados internamente naquela classe, métodos que não podem ser acessados diretamente e métodos que podem ser acessados de qualquer parte do nosso projeto.
Motivos para se utilizar métodos:
Utilizamos os métodos para fazer esses acessos aos objetos por questões de segurança e integridade do objeto em si e da aplicação como um todo, temos que pensar que em uma aplicação completa, os dados dos objetos são armazenados em um banco de dados, não é interessante (não é uma boa prática) a gente permitir o acesso direto a essas informações, nem mesmo que seja apenas para consulta.
Quais os métodos mais utilizados?
Os métodos mais utilizados, que inclusive geraram em diversas IDEs soluções prontas para a criação deles são os métodos conhecidos como "Getters and Setters", basicamente são os métodos utilizados para se obter a informação sobre algum atributo do objeto (getters) e definir o valor de algum atributo do objeto (setters).
Agora para por o conhecimento em prática, nada melhor do que criar alguns métodos:
Definindo getters e setters em Java:
public class ClasseExemplo {
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
String nome = "Acadêmico Tech";
int idade = 20;
}
Neste trecho de código definimos uma classe com nome "ClasseExemplo" com dois atributos: nome e idade. Além disso, definimos os métodos getters e setters dessa classe, deste modo , agora é possível definir e consultar os valores da classe sem interagir diretamente com o objeto, mas sim com os métodos.
Definindo getters e setters em Python:
class Classe Exemplo:
def __init__(self, nome, idade):
self._nome = nome
self._idade = idade
@nome.getter
def nome(self):
return self.nome
@nome.setter
def nome(self, novo_nome):
self._nome = novo_nome
@idade.getter
def idade(self):
return self.idade
@idade.setter
def idade(self, nova_idade):
self._idade = nova_idade
No trecho de código acima temos a mesma estrutura que montamos em Java, sendo aplicada em Python. Uma classe com nome "ClasseExemplo" com dois atributos: nome e idade. Além disso, definimos os métodos getters e setters dessa classe.