Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Não foi possível localizar nem carregar a classe principal

Estou na primeira aula, fiz os exercicios, mas na hora de rodar pra ver se estava printando tudo certo, ele dá esse erro no console... alguem sabe o que pode ser ??

minha principal:

package br.com.caelum.empresa;

import java.util.Calendar;
import java.util.GregorianCalendar;

import br.com.caelum.empresa.modelo.Funcionario;

public class Principal {
    public static void main(String[] args) {
        Calendar dataNascimento = new GregorianCalendar(1992, 3, 18);
        Funcionario funcionario = new Funcionario("José", 25, dataNascimento);
        System.out.println(funcionario);
    }
}
6 respostas

Bom dia,Vinicius.

Acontece, que voce pediu para ser printado um objeto e por isso será impresso isso : Funcionario@75b84c92, pois por padrao o método Object nao sabe qual representação usar para printar o mesmo,se é toString(), equals(Object obj), hashcode() e etc..

Então, para você usar a representação textual que é imprimir os valores atribuidos as variaveis, utilize sobrescrever o método toString() na classe Funcionario, assim será impresso conforme voce deseja.

Dentro da classe Funcionario,escreva isso :

(```)

public String toString() { return "O funcionário " + nome + " tem " + idade + " anos de idade."; }; (```)

Boa tarde, Sérgio

O método toString já está sobrescrito, vou colocar a classe Funcionário aqui pra vcs verem.

package br.com.caelum.empresa.modelo;

import java.util.Calendar;

public class Funcionario {
    private String nome;
    private int matricula;
    private Calendar dataNascimento;

    public Funcionario(String nome, int matricula, Calendar dataNascimento) {
        this.nome = nome;
        this.matricula = matricula;
        this.dataNascimento = dataNascimento;
    }

    @Override
    public String toString() {
        return "Funcionario: " + nome;
    }

    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public int getMatricula() {
        return matricula;
    }
    public void setMatricula(int matricula) {
        this.matricula = matricula;
    }
    public Calendar getDataNascimento() {
        return dataNascimento;
    }
    public void setDataNascimento(Calendar dataNascimento) {
        this.dataNascimento = dataNascimento;
    }
}

Bacana, Vinicius!!

Qual é o erro que emite no console? deveria ter perguntado isso antes, rsrsrs. Se estiver rodando o projeto com as classes que passou, nao tem problema algum,imprime normalmente nome do funcionário, como sobrescrito no metodo toString().

solução!

o problema eu coloquei no titulo," Não foi possível localizar nem carregar a classe principal " Sim, sao essas classes que passei, inclusive a funcionario nem mexi.

Mas já resolvi, acho que era alguma configuraçao do eclipse ou algo assim Cliquei na aba run >> run as >> java application ao inves de clicar no botao run. Aí rodou o toString corretamente, bizarro né ? ahueaueae Agora eu clico diretamente no botao run e vai, muito zuado, mas deu certo Obrigado pela ajuda ! Abraço o/

rsrsrsrs. Nossa cara!! Realmente bizarro, rsrsrsrsrs. O que importa é que funcionou e voce descobriu sozinho, melhor ainda. Desculpe, acabei nao lendo o titulo corretamente.

Abraços e boa sorte nos estudos!! \o

Provavelmente o foco de execução estava apontado para outro projeto, então quando colocava para executar ele na verdade tentava abrir um outro projeto que ainda não possuía o método, provavelmente pode ter sido este o caso.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software