Construtores

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.

" só vai mostrar um valor positivo, se for maior que 0 ." xD … dificil eh um valor positivo menor que 0 ^^… n dava pra deixa passa nao rsrsrs

Nem percebi isso kkkkkk

hehe :smiley: