4
respostas

[Dúvida] Desafio: hora da prática 01

Boa noite!
Estou fazendo o desafio: hora da prática 01, estava escrevendo o código tudo certinho mas apareceu um erro que fiquei sem entender. Primeiro pediu para que eu mudasse o nome para "perfil" para conseguir executar o código, mudei e deu tudo certo. Porém, quando fui fazer o segundo passo, deu o mesmo erro pedindo para mudar o nome do .java
Estou com dúvida em relação a isso, toda vez que eu for criar uma classe, é preciso mudar o nome do arquivo para essa classe? Eu teria que salvar vários arquivos com o nome.java para que desse certo? Fiquei muito perdida nessa parte.
Print da tela do IntelliJ exibindo erro java: class Estudos is public, should be declared in a file named Estudos.java

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
4 respostas

Acabei de fazer minha atividade a apareceram esses erros (segue em anexo o print), não sei como resolver isso. Me ajudem pleaseeee
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ola Larissa.
Acredito que seja um erro facil de resolver.
Voce só pode ter um arquivo principal com o nome da classe e um metodo main por classe.
Testa ai e avise.
Estas outras classes crie em arquivos separados.
E caso queira deixar todas as classes no mesmo arquivo remova o public delas,além do metodo main é claro.
Bons estudos.

Olá, Ronaldo!
Obrigada pela explicação.
Fiz em arquivos separados e deu certo. Minha intenção era deixar todas as classes no mesmo arquivo mas me enrolei nisso kkkk você poderia me explicar em forma de código como ficaria? Removi o public e o main, mas deu errado.

Oi Larissa.
Vou tentar explicar.
As outras classes precisam ficar dentro do escopo da classe principal e se olhar direito estão para fora.
Exemplo correto:

public class Perfil {
    public static void main(String[] args) {
        System.out.println("Olá Lari");
        System.out.println("Tudo bem");
  
        Estudo estudo = new Estudo();
        estudo.exibirMensagem();

        Soma soma = new Soma();
        soma.exibirResultado();

        Subtracao subtracao = new Subtracao();
        subtracao.exibirResultado();
    }
   
    static class Estudo {
        void exibirMensagem() {
            System.out.println("JVM é a máquina responsável por executar bytecode");
            System.out.println("Outra mensagem");
        }
    }
    
    static class Soma {
        void exibirResultado() {
            System.out.println("Resultado da soma:");
            System.out.println(10 + 5);
        }
    }

    static class Subtracao {
        void exibirResultado() {
            System.out.println("Resultado da subtração:");
            System.out.println(10 - 5);
        }
    }
}

Além disso precisa criar um método para adicionar os prints e depois chamar no metodo principal da classe :main.
Analisa o código com calma e confere as diferenças.
Depois me envia um feedback se deu certo.
Se precisar de mais alguma ajuda ou surgir aquela duvida comente ai.
Bons estudos.