A keyword return não atribuí uma valor para um atributo, ele retorna um resultado para o método que o chamou:
public void metodo1() {
//valor da soma: 22
System.out.println(getValor1() + getValor2());
}
public int getValor1() {
return 10;
}
public int getValor2() {
return 12;
}
Além disso, o return pode ser usado para sair de um fluxo, veja o exemplo:
for (int i = 0; i < 100; i++) {
if (i > 30)
return;
else
System.out.println("Valor: " + i);
}
Você atribuí uma valor à uma variável associando ela diretamente ao valor:
//alguns exemplos...
String meuNome = "A lua sabe";
int valor;
valor = -2893;
char c = '\n';
A questão do encapsulamento é para proteger o seu código ou forcár quem irá utilizá-lo a chamar um método que encapsula um lógica que não é interessante o usuário saber.
legal agr enquanto no encapsulamento, qria saber como seria usado o get com o return por exemplo:
class Carro {
private String marca;
private String modelo;
private Double preco;
public void setMarca(String marca)
{
this.marca = marca;
}
public String getMarca()
{
return this.marca;
}
/*Da mesma forma com o modelo e preco
...*/
}
public class Teste {
public static void main(String[] args){
Carro meuCarro = new Carro();
meuCarro.setMarca("Volkswagen");
meuCarro.getMarca();
}
}
Neste caso ao chamar o metodo getMarca() oq acontece?
eu pensava que ele exibia uma mensagem ao usuario com o valor do atributo, no caso: Volkswagen.
Mas pelo oq entendi o metodo get só servirá em comparações?
a minha maior dúvida é com o metodo get, qria saber exatamente oq ele faz… pois na declaracao ele faz um “return”, mas oq esse return faz?
essa é minha duvida…
se eu quisesse exibir ao usuario a marca do carro, o metodo get nao adianta?
e se fosse comparar a marca do carro para por exemplo selecionar apenas carros de uma certa marca… aí teria que por o metodo get dentro de um if?
quando programo aplicações, faço esse encapsulamento como parecer ser boa pratica, o metodo set sei usar normalmente, quanto ao metodo get, eu declaro ele porem nunca invoco, apenas fica la, pois nao sei qual sua função…
É exatamente isto, a sintaxe “return” retorna o valor que está armazenado, neste caso, no atributo marca, e a função da sintaxe “return” e retornar valores para a linha (o lugar) de onde o método get foi invocado, e foi exatamente o que o nosso amigo Grivon explicou.
Exemplo:
class Carro {
private String marca;
private String modelo;
private Double preco;
public void setMarca(String marca)
{
this.marca = marca;
}
public String getMarca()
{
/* Aqui o "return" retorna o valor que está armazenado no atributo marca
Mas para onde ? Vejamos logo abaixo. */
return this.marca;
}
/*Da mesma forma com o modelo e preco
...*/
}
public class Teste {
public static void main(String[] args){
Carro meuCarro = new Carro();
meuCarro.setMarca("Volkswagen");
/* A sintaxe "return" retorna o valor para cá,
ou seja, ela substitui a sintaxe "getMarca(),
pelo valor retornado por "return",
só que este valor tem que está associado a
outra variável ou ser apresentado no linha
do console, assim */
System.out.println(meuCarro.getMarca());
}
}
É importante voce notar que quando voce invoca os métodos “gets”, eles tem que ser associados a um outra variável, ou ser mostrados através de outro métodos, porque voce simplesmente invocar o método meuCarro.getMarca() puro e simplesmente ele não vai jogar o valor de return para lugar nenhum. logo:
System.out.println(meuCarro.getMarca());
// ou
String marca = meuCarro.getMarca();
// Estas são as formas corretas de se usar os "gets"