Estou tentando entender porque quando atribuo valores as variaveis de instancia que inicializei pelo construtor, quando chamo os metodos get e set eles
nao retornam os valores atribuidos nos metodos, ou quando passo os valores na passagem de parametros.
[resolvido]Qual a vantagem em inicializar variaveis com construtor?
3 Respostas
S
Estou tentando entender porque quando atribuo valores as variaveis de instancia que inicializei pelo construtor, quando chamo os metodos get e set eles
nao retornam os valores atribuidos nos metodos, ou quando passo os valores na passagem de parametros.
Coloca o seu construtor para que possamos ver o que está ocorrendo.
E
Estou tentando entender porque quando atribuo valores as variaveis de instancia que inicializei pelo construtor, quando chamo os metodos get e set eles
nao retornam os valores atribuidos nos metodos, ou quando passo os valores na passagem de parametros.
Provavelmente porque você deve estar esquecendo de escrever “this”:
// Versão incorreta
public class Complex {
private double r;
private double i;
public Complex (double r, double i) {
r = r;
i = i;
}
}
// Versão correta
public class Complex {
private double r;
private double i;
public Complex (double r, double i) {
this.r = r;
this.i = i;
}
}
O que está acontecendo é muito simples: você utiliza um nome de variável local com o mesmo nome da variável de instância. Nesse caso, ocorre o sombreamento da variável de instância. Para resolver isso, utilize o this.
this.r = r;
this.i = i;
Criado 4 de março de 2013
Ultima resposta 4 de mar. de 2013
Respostas 3
Participantes 4
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo