Dada a classe EmprestimoComposto desenvolvida anteriormente em sala de aula.
Crie uma classe Emprestimo que generalize qualquer emprestimo e EmprestimoComposto passa a ser herdeira da mesma. Transfira para a superclasse o máximo de atributos e métodos, de tal modo que possam ser reusados pelos herdeiros.
Crie uma classe EmprestimoSimples herdeira de Emprestimo que também disponha dos métodos parcela() e proximaParcela().
In [5]:
import java.lang.Math;
class EmprestimoComposto {
private float s;
private int n;
private float j;
private int corrente;
private float p,
proxima;
public EmprestimoComposto(float s, int n, float j) {
this.s = s;
this.n = n;
this.j = j;
corrente = 1;
this.p = -1; // antes da primeira parcela
this.proxima = s;
}
float getS() {
return s;
}
int getN() {
return n;
}
float getJ() {
return j;
}
public float proximaParcela() {
p = proxima;
corrente++;
if (corrente <= n)
proxima += (proxima * (j/100));
else
proxima = 0;
return p;
}
public float parcela() {
return p;
}
public float parcela(int numero) {
float resultado = 0;
if (numero <= n)
resultado = s * (float)Math.pow(1 + j/100, numero-1);
return resultado;
}
}
Out[5]:
In [6]:
// codigo principal
EmprestimoComposto emprestimo1 = new EmprestimoComposto(200, 5, 1),
emprestimo2 = new EmprestimoComposto(500, 7, 2);
int i = 1;
emprestimo1.proximaParcela();
emprestimo2.proximaParcela();
while (emprestimo1.parcela() > 0 || emprestimo2.parcela() > 0) {
if (emprestimo1.parcela() > 0) {
System.out.println("Emprestimo 1: parcela " + i + " eh " + emprestimo1.parcela());
System.out.println(" parcela " + i + " eh " + emprestimo1.parcela(i));
}
if (emprestimo2.parcela() > 0) {
System.out.println("Emprestimo 2: parcela " + i + " eh " + emprestimo2.parcela());
System.out.println(" parcela " + i + " eh " + emprestimo2.parcela(i));
}
emprestimo1.proximaParcela();
emprestimo2.proximaParcela();
i++;
}
Out[6]:
In [ ]:
In [ ]: