Por que o resultado da impressão em tela traz a conta 2 zerada? Qual o valor de “saldoInicial” e por quê?
public class Conta
{
private double saldo;
public Conta(double saldoInicial) //CONSTRUTOR
{
if (saldoInicial>0)
saldo=saldoInicial;
}
public double getSaldo()
{
return saldo;
}
} // FIM DA CLASSE ANTERIOR
public class ContaTeste
{
public static void main (String args[])
{
Conta conta1=new Conta(50.00);
Conta conta2=new Conta(-7.53);
System.out.printf("Saldo da conta 1: R$ %.2f.\n", conta1.getSaldo());
System.out.printf("Saldo da conta 2: R$ %.2f.\n", conta2.getSaldo());
}
}
// O RESULTADO EM TELA É:
Saldo da conta 1: R$ 50,00.
Saldo da conta 2: R$ 0,00.
POR QUE O SALDO DA CONTA 2 É ZERO ??? Serei grata a quem me responder.
pq no constutor vc testa se o saldo passado por parametro é maior que zero… se for entao vc atribui ao saldo… no caso da conta 2 … o saldo eh negativo… nao entra no seu if… portanto nao joga valor algum no atributo saldo… o valor que fica é o valor padrao de uma variavel numerica… no caso 0…
obs: se vc colocar o codigo dentro da tag code fica melhor pra gente analizar… qualquer duvida estamos ai
No construtor Conta, você disse que se o saldoInicial for maior que 0, então saldo recebe saldoInicial, mas ao criar um objeto como conta2, você passou por parâmetros um valor negativo para o construtor (-7.53), nesse caso ele vai receber o valor default de double que é zero, só vai mostrar, se o valor for positivo.