[Resolvido]Explicação de codigo


public String toString() { 
			return folha ? Double.toString(valor) : Character.toString(operacao) ; 
			}

Alguém poderia comentar esse pedaço de código?

Você não entende o que ele faz?

não entende o toString() ou o operador ternário?

O operador ternário é um operador condicional como um if, ele poderia ser traduzido para isso if(folha){ return Double.toString(valor); } else { return Character.toString(operacao); } A sintaxe dele é essa : <condição> [color=red]?[/color] [color=red] :[/color] ;
É muito usado para atribuições, pois pode manter o código mais limpo. Ex:[code]if(idade > 18){
maiorDeIdade = true;
}else{
maiorDeIdade = false;
}

// Agora utilizando um operador ternário:

maiorDeIdade = (idade > 18) ? true : false;[/code] Esse ternário pode ser aprimorado (na verdade ele nem é necessário nessa atribuição), mas é só um exemplo bem simples e bobo, pra você entender como ele funciona.

O que o ternário tem diferente do if:
a) O operador ternário é um operador. Portanto, ele retorna valor;
b) Os dois valores retornados devem, necessariamente, ser do mesmo tipo.

Um jeito de explicar o operador ternário é que ele é uma versão “mistificada” do “SE” do Excel. (“IF” no Excel em inglês) De modo geral, tudo que é mais intuitivo no Basic ou no Excel é mais complicado no C e, por decorrência, no Java, que é um “neto” da linguagem C.

No Excel você pode criar uma fórmula assim:

=SE (A9 > 0; "SALDO CREDOR"; "SALDO DEVEDOR")

ou (no Excel em inglês)

=IF (A9 > 0, "SALDO CREDOR", "SALDO DEVEDOR")

No Java a mesma fórmula é:

(A9 > 0) ? "SALDO CREDOR" : "SALDO DEVEDOR"

Viu ? Não tem dificuldade nenhuma : :slight_smile:

Obrigado agora conseguir entender.