tenho as seguintes classes e não consigo testar, tenho o seguinte erro:
Exception in thread "main" java.lang.NullPointerException
at br.caelum.cap07.Conta.deposita(Conta.java:18)
at br.caelum.cap07.ContaCorrente.deposita(ContaCorrente.java:20)
at br.caelum.cap07.TestaConta.main(TestaConta.java:9)
import java.math.BigDecimal;
public class Conta {
private BigDecimal saldo;
private BigDecimal limite;
public Conta(BigDecimal limite) {
this.limite = limite;
}
public BigDecimal getSaldo() {
return saldo;
}
public void deposita(BigDecimal valor) {
saldo.add(valor);
}
public void saca(BigDecimal valor) {
if (this.saldo.add(this.limite).doubleValue() >= valor.doubleValue()) {
this.saldo.subtract(valor);
} else
throw new IllegalArgumentException("estourou limite!");
}
public void atualiza(BigDecimal taxa) {
saldo.multiply(taxa);
}
}
import java.math.BigDecimal;
public class ContaCorrente extends Conta {
public ContaCorrente(BigDecimal limite) {
super(limite);
}
//protected BigDecimal saldo;
public void atualiza(BigDecimal taxa) {
// this.saldo += this.saldo * taxa * 2;
super.atualiza(taxa.multiply(new BigDecimal("2")));
}
public void deposita(BigDecimal valor) {
// this.saldo += valor - 0.10;
super.deposita(valor.subtract(new BigDecimal("0.10")));
}
}
import java.math.BigDecimal;
public class ContaPoupanca extends Conta {
public ContaPoupanca(BigDecimal limite) {
super(limite);
}
protected BigDecimal saldo;
public void atualiza(BigDecimal taxa) {
this.saldo.add(this.saldo.multiply(taxa).multiply(new BigDecimal("3")));
// super.atualiza(3 * taxa);
}
}
import java.math.BigDecimal;
public class TestaConta {
public static void main(String[] args) {
Conta corrente = new ContaCorrente(new BigDecimal("1000"));
corrente.deposita(new BigDecimal("500"));
corrente.saca(new BigDecimal("30"));
corrente.atualiza(new BigDecimal("1.5"));
System.out.println(corrente.getSaldo());
Conta poupanca = new ContaPoupanca(new BigDecimal("1000"));
poupanca.deposita(new BigDecimal("500"));
poupanca.saca(new BigDecimal("100"));
//poupanca.atualiza(new BigDecimal("0.5"));
System.out.println(poupanca.getSaldo());
}
}