Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Classe não compila com o modificador 'Public'

Escrevi o código abaixo, igual o exemplo da Aula, porem a Classe 'ExemploCurso' não compila, na ajuda do eclipse pede para renomear a classe.

Para compilar o código eu tenho que tirar a palavra 'Public' da frente da classe. Alguém sabe me explicar o porque ?

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Curso {
    private String nome;
    private int alunos;

    public Curso(String nome, int alunos) {
        this.nome = nome;
        this.alunos = alunos;
    }

    public String getNome() {
        return nome;
    }

    public int getAlunos() {
        return alunos;
    }
}

public class ExemploCurso {

    public static void main(String[] args) {

    List<Curso> cursos = new ArrayList<Curso>();
    cursos.add(new Curso("Python", 45));
    cursos.add(new Curso("JavaScript", 150));
    cursos.add(new Curso("Java 8", 113));
    cursos.add(new Curso("C", 55));

    cursos.sort(Comparator.comparing(Curso::getAlunos));
    cursos.forEach(System.out::println);


    }
}

Obrigado!

1 resposta
solução!

Oi Dario!

O Java só permite uma classe pública por arquivo, e pra compilar, você precisa que o arquivo tenha o mesmo nome desta classe pública, com a extensão .java.

Então neste caso se o arquivo é ExemploCurso.java, só a classe ExemploCurso pode ser public. Por isso tem que tirar o nome public da frente da classe Carro... :)

Abraço!