if(asd == true){
//qualquer coisa
}
e essa não é uma boa prática
if(asd == true)
{
//qualquer outra coisa
}
if(asd == true){
//qualquer coisa
}
e essa não é uma boa prática
if(asd == true)
{
//qualquer outra coisa
}
É uma questão de opinião e facilidade de leitura.
Pra mim é útil já que o programador irá ver logo que a função (no caso o if) terá um “corpo”.
Ex:
Podemos declarar um JLabel (componente da classe Swing) da seguinte forma:
JLabel label = new JLabel();
Ou
JLabel label = new JLabel(){
//Alguma coisa aqui
};
Usando o “{” na mesma linha dá pra entender logo de cara que tem um “corpo”, evitando confundir o “sem corpo” com o “com corpo”
tenho a curiosidade de saber por que essa quebra de chaves é uma boa práticaif(asd == true){ //qualquer coisa }e essa não é uma boa prática
if(asd == true) { //qualquer outra coisa }
Por que o Java especificou uma convenção de código formal:
http://www.oracle.com/technetwork/java/codeconv-138413.html
Não significa que o outro tipo de quebra de linha não possa ser mais adequado em outras linguagens que a usam (C#, C++) ou em alguma empresa que opte por não usar as code conventions oficiais.
Como já foi dito acima, o principal não é nem o fato de qual das duas maneiras é mais bonita ou mais feia, e sim que uma delas é a maneira adotada pela convenção oficial 
Mesmo existindo as convenções oficiais java, não é difícil você encontrar projetos livres importantes por ai que simplesmente não as seguem.
Não tenho certeza mas;
Acho que isso é mais questão de convenção do que propriamente de boa prática.
JLabel label = new JLabel(){ //Alguma coisa aqui };Usando o “{” na mesma linha dá pra entender logo de cara que tem um “corpo”, evitando confundir o “sem corpo” com o “com corpo”
Cuidado! Nesse exemplo você não está apenas declarando um JLabel, está definindo uma classe anônima também. Não é o mesmo que escrever apenas JLabel label = new JLabel();.
JLabel label = new JLabel(){ //Alguma coisa aqui };Usando o “{” na mesma linha dá pra entender logo de cara que tem um “corpo”, evitando confundir o “sem corpo” com o “com corpo”
Cuidado! Nesse exemplo você não está apenas declarando um JLabel, está definindo uma classe anônima também. Não é o mesmo que escrever apenas JLabel label =
new JLabel();.
JLabel label = new JLabel(){
//sobrescreve algum método
};
VS
//olha abaixo que estranho parece que é um jlabel comum sem ;, ai você ve a chave em baixo, ai da um delay e você percebe que é uma classe anonima.
JLabel label = new JLabel()
{
//sobrescreve algum método
};
acho que ele quiz dizer que quando criamos uma classe anônima fica mais facil idêntificar que é uma classe anonima colocando as chaves na frente {
Obrigado por todas as respostas, dúvida esclarecida
=)
Igual o ViniGodoy disse, é convenção.
Acredito que eles lançam uma convenção para que as pessoas não fiquem
brigando dizendo se um jeito é melhor que o outro ou coisa desse tipo.
Assim com uma convenção, os profissionais podem seguir um padrão
ou seja da mesma forma que no Brasil, os volantes dos carros
ficam do lado esquerdo do Carro
e nos USS eles fiam do lado direito, mas ambos servem para dirigir.
Assim lançam uma convenção para que no Brasil todos os carros
tenham o volante do lado esquerdo e por aí vai trelele…
Da mesma forma a convenção diz para fazer o método assim:
if(a>b){
soma++;
}
e aí a gente do java segue para ficar organizado e comum a todos para ler e etc.
Não se preocupe pois no início parece meio estranho mas depois você se acostuma
com algumas convenções que geram um pouco de confusão no que a gente já sabe.
Abraço.