-3
I have to do this exercise but at the time of error executing. Please help me.
Code 1:
public class Correntista {
private String cpfCliente; // cpf do correntista
private float saldo; // saldo da conta
public Correntista(String cpfCliente, float saldo) {
this.cpfCliente = cpfCliente;
this.saldo = saldo;
}
public String getCPFCliente() {
return cpfCliente;
}
public float getSaldo() {
return saldo;
}
public void setSaldo(float saldo) {
this.saldo = saldo;
}
}
Code 2:
public interface MovimentoConta {
public String getCPFCorrentista();
public float getValorMovimento();
}
Code 3:
public class MovimentoContaImpl implements MovimentoConta {
private float valorMovimento;
private Correntista correntista;
public MovimentoContaImpl(Correntista correntista, float valorMovimento) {
this.valorMovimento = valorMovimento;
this.correntista = correntista;
}
public String getCPFCorrentista() {
return correntista.getCPFCliente();
}
@Override
public float getValorMovimento() {
return this.valorMovimento;
}
}
Code 4:
public interface OperacoesBanco {
public Correntista encontraCorrentista(Correntista todosCorrentistas[],String cpfProcurado);
}
Code 5:
public class OperacoesBancoImpl implements OperacoesBanco {
@Override
public Correntista encontraCorrentista(Correntista[] todosCorrentistas, String cpfProcurado) {
Correntista correntista = new Correntista(cpfProcurado, 100.0f);
for(Correntista c : todosCorrentistas){
if(c.getCPFCliente().equals(cpfProcurado)){
correntista = c;
}
}
return correntista;
}
}
Code 6:
public class Teste {
public void atualizarSaldo(Correntista[] c, MovimentoConta[] m, OperacoesBanco op) {
for(MovimentoConta mc : m){
Correntista correntista = op.encontraCorrentista(c, mc.getCPFCorrentista());
correntista.setSaldo(correntista.getSaldo() + mc.getValorMovimento());
}
}
public static void main(String args[]) {
Correntista c1 = new Correntista("111111", 2000);
Correntista c2 = new Correntista("222222", 1000);
Correntista c3 = new Correntista("333333", 1500);
Correntista c4 = new Correntista("444444", 1400);
Correntista c5 = new Correntista("555555", 2500);
Correntista[] cVetor = new Correntista[5];
cVetor[0] = c1;
cVetor[1] = c2;
cVetor[3] = c3;
cVetor[3] = c4;
cVetor[4] = c5;
MovimentoContaImpl m1 = new MovimentoContaImpl(c2, +200);
MovimentoContaImpl m2 = new MovimentoContaImpl(c1, -100);
MovimentoContaImpl m3 = new MovimentoContaImpl(c3, +500);
MovimentoContaImpl m4 = new MovimentoContaImpl(c5, -200);
MovimentoContaImpl m5 = new MovimentoContaImpl(c2, +80);
MovimentoContaImpl m6 = new MovimentoContaImpl(c4, +300);
MovimentoContaImpl m7 = new MovimentoContaImpl(c3, -150);
MovimentoContaImpl[] mVetor = new MovimentoContaImpl[7];
mVetor[0] = m1;
mVetor[1] = m2;
mVetor[2] = m3;
mVetor[3] = m4;
mVetor[4] = m5;
mVetor[5] = m6;
mVetor[6] = m7;
System.out.println(cVetor[0].getCPFCliente() +"\n" +cVetor[0].getSaldo());
OperacoesBancoImpl op = new OperacoesBancoImpl();
Teste t = new Teste();
t.atualizarSaldo(cVetor, mVetor,op);
System.out.println(cVetor[0].getCPFCliente() +"\n" +cVetor[0].getSaldo());
}
}
Erro:Exception in thread "main" java.lang.NullPointerException
at Exer04.OperacoesBancoImpl.encontraCorrentista(OperacoesBancoImpl.java:11)
at Exer04.Teste.atualizarSaldo(Teste.java:7)
at Exer04.Teste.main(Teste.java:44)
Java Result: 1
Related: What is Nullpointerexception and what are its main causes?
– Icaro Martins