Não compila. Apontei onde os erros aparecem com (*).
Classe Conta :
package conta;
import sistema.ValorInvalidoException;
abstract public class Conta implements Comparable{
protected int numero;
protected double saldo;
protected String name;
public Conta(double saldo) {
this.saldo = saldo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void deposita(double valor) throws ValorInvalidoException {
if(valor < 0){
throw new ValorInvalidoException(valor);
} else {
this.saldo += valor;
}
}
public double getSaldo() {
return this.saldo;
}
public void saca(double valor) {
this.saldo -= valor;
}
abstract public void atualiza(double taxa);
public String toString() {
return "Esse objeto e uma conta com saldo: " + this.saldo;
}
public boolean equals(Object obj) {
Conta outraConta = (Conta) obj;
return this.numero == outraConta.numero && this.name == outraConta.name;
}
public int getNumero() {
return this.numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
}
Classe ContaPoupanca :
package conta;
public class ContaPoupanca extends Conta {
public ContaPoupanca(double saldo) {
super(saldo);
}
public void atualiza(double taxa) {
this.saldo += this.saldo * taxa * 3;
}
public int compareTo(Object outra) {
***if(this.saldo > outra.saldo) return -1;
***if(this.saldo < outra.saldo) return 1;
return 0;
}
}
Classe Principal :
package banco;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import conta.Conta;
import conta.ContaCorrente;
import conta.ContaPoupanca;
import outros.Tributavel;
import sistema.AtualizadorDeContas;
import sistema.ValorInvalidoException;
public class Principal {
public static <T> void main(String[] args) throws ValorInvalidoException {
ArrayList<Conta> contas = new ArrayList<Conta>();
ContaCorrente cc = new ContaCorrente(100.0);
cc.setName("Renan");
cc.deposita(300.0);
cc.atualiza(0.5);
cc.setNumero(1200);
System.out.println("Conta Corrente atualizada : " + cc.getName() + " apresenta " + cc.getSaldo());
ContaPoupanca cp = new ContaPoupanca(100.0);
cp.setName("Renato e Alex Sandra");
cp.deposita(300.0);
cp.atualiza(0.5);
cp.setNumero(1200);
System.out.println("Conta Poupanca atualizada : " + cp.getName() + " apresentam " + cp.getSaldo());
contas.add(cp);
contas.add(cp);
***Collections.sort(contas);
for(Conta c : contas){
System.out.println(c);
}
AtualizadorDeContas atualizador = new AtualizadorDeContas(0.5);
atualizador.roda(cc);
atualizador.roda(cp);
Tributavel t = cc;
System.out.println(t.calculaTributos());
}
}