Olá Henrique!
Esse erro ocorreu devido ao tipo de visibilidade da classe e dos atributos.
O que aconteceu é que você declarou a classe como public, onde todos podem acessar, mas os atributos, por não terem nenhuma visibilidade declarada, estavam como package (ou default ou friendly) que apenas classes dentro do mesmo pacote conseguem acessar. Isso causou uma inconsistência no seu código.
Quanto a segunda pergunta, o comum é sempre colocar uma visibilidade para suas classes e para seus atributos, salvos casos que apenas as classes de um determinado pacote podem ter acesso. Teste o seguinte: coloque a visibilidade da classe e dos atributos como public. Depois que os atributos estiverem públicos, tente remover a visibilidade da classe e veja o que acontece.
Continuando o curso, você verá mais detalhes sobre o assunto, mas para mais informações, segue um link onde encontra um compilado sobre o assunto.
Espero ter ajudado!