class Conta {
//atributos e metodos aqui dentro
}
class Banco {
Conta[] contas;
Conta pegaConta(int numeroDaContaQueDesejoSelecionar) {
int i;
//aqui dentro realiza-se o processamento
return contas[i];
}
}
Tenho várias contas instanciadas e inseridas dentro de um objeto do tipo Banco, quero passar como parametro o numero de determinada conta e o metodo deverá retornar a referencia para esta conta. Ocorre o seguinte erro, ou seja, o retorno está errado "/
Acho que você não inicializou a variável i.
Ela recebe o que?
Talvez fosse Conta pegaConta(int numeroDaContaQueDesejoSelecionar) {
int i = numeroDaContaQueDesejoSelecionar;
//aqui dentro realiza-se o processamento
return contas[i];
}
[code] Conta pegaConta(int x) {
for(int i=0; i<contas.length; i++) {
if (i == x) {
return contas[i];
}
}
} [/code]
e colocando
Conta pegaConta(int x) {
for(int i=0; i<contas.length; i++) {
if (i == x) {
return contas[i];
}
}
return null;
}
Funcionou. Talvez seja isso
Se você estiver pelo eclipse (ou outro IDE) quando aparacer aquele balaozinho de erro ao lado da linha, você clica lá e ele te dá algumas dicas e possíveis soluções
Estou usando o gedit por enquanto, vou passar o usar o eclipse daqui pra frente.
Cara, me chamou atenção em uma coisa agora, esses tempos fiz um método com retorno tipo boolean, e se eu colocasse somente um return true, não compilava…tinha que colocar o return false…sabe pq isso??
Parece a mesma situação que ocorreu aqui, obrigado pela dica
esse return tava dentro de um if? ou qualquer outra condição lógica?
Se for isso, acontece porque o método tem que retornar alguma coisa independente de atender ou não a condição lógica, se retornar somente dentro da condição, se não atende-la não terá retorno, concorda?
Está explicado, hehe. Achei que o java se encarrega-se de retornar um null por exemplo, caso a condição não fosse satisfeita
Esclareceu minha dúvida markin1, grato.