Dúvidas de um inicante no JAVA

Eae galera tudo bem ?
Como disse no titulo sou totalmente iniciante no Java, e sou novo aqui no GUJ também!
Pra iniciar no Java estou acompanhando aquela apostila grátis da Caelum que me pareceu muito boa ! Mas durante os estudos tive um problema, ao compilar o código abaixo (retirado da apostila):

int idade = 15;
while (idade < 18){
System.out.println(idade);
idade = idade +1;
}

class Main{
public static void main(String[] args){
int idade = 15;
while (idade < 18){
System.out.println(idade);
idade = idade +1;
}
}
}

Obtive estes erros :

TesteIdade.java:1: error: class, interface, or enum expected
int idade = 15;
^
TesteIdade.java:2: error: class, interface, or enum expected
while (idade < 18){
^
TesteIdade.java:4: error: class, interface, or enum expected
idade = idade +1;
^
TesteIdade.java:5: error: class, interface, or enum expected
}
^
4 errors

Depois de algumas pesquisas eu vi alguns casos parecidos onde o problema eram chaves entre a classe e as declarações (Não entendi muito bem). Mesmo retirando as chaves que falaram, os erros continuaram até que executei só a partir da criação da classe:

class Main{
public static void main(String[] args){
int idade = 15;
while (idade < 18){
System.out.println(idade);
idade = idade +1;
}
}
}

Executando só isso o código funciona como deveria funcionar, por fim minha dúvida é : Deveria funcionar da primeira forma ? Se sim, porque não funcionou ? E se sim, qual a importância da primeira parte se só a segunda já funciona ?
Desculpem se a dúvida foi boba guys, mas não fiquei totalmente satisfeito com as explicações que encontrei.

Bem vindo ao guj.
Quando postar código, seleciona o mesmo e clica no botão </> acima do editor, isso fará com que o código fique destacado e mais fácil de ler.
Bom, o que ocorre é que você copiou ipsis literis o que está na apostila. A classe deve ser, apenas:

class Main{
    public static void main(String[] args){
        int idade = 15;
        while (idade < 18){
            System.out.println(idade);
            idade = idade +1;
        }
    }
}

Sem nada antes da declaração “class Main”

Entendeu?

1 curtida

Obrigado pela dica sobre o código e pela resposta @darlan_machado !
Nesse caso acho que foi mais um erro de interpretação de minha parte, é que a forma com que eles colocaram na apostila parece estar conectado, dá uma olhada:

image

Mas agora eu entendi ! Muito Obrigado!

Imagina.
Sobre a maneira como está na apostila, creio que é um feedback legal para o pessoal da caelum.