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

Dúvida no Ex. 9 da Aula 3 - Começando com Orientação a objetos

Eu fiz o que o Aniche pediu. Mas o meu código esta dando um erro estranho mesmo compilando.

Error: Could not find or load main class TestaFuncionario

Não sei o que pode ser, se alguém puder ajudar por favor!

class Funcionario {
    Pessoa titular;
    double salario;
    Data dataDeEntradaNoBanco;

    double recebeAumento(double aumento) {
        this.salario += (this.salario / 100) * aumento;
        return this.salario;
    }

    double calculaGanhoAnual() {
        this.salario = this.salario * 12.0;
        return this.salario;
    }

    void mostra() {
        System.out.println("Nome: " + this.titular.nome);
        System.out.println("Departamento: " + this.titular.departamento);
        System.out.println("RG: " + this.titular.rg);
        System.out.println("Salário Antigo: " + this.salario);
        System.out.println("Salário Atual: " + (this.recebeAumento(20.0)));
        System.out.println("Salário Anual: " + this.calculaGanhoAnual());
        System.out.println("Data de entrada no banco: " + this.dataDeEntradaNoBanco.getFormatada());
    }
}

class Pessoa {
    String nome;
    String departamento;
    String rg;
}

class Data {
    int dia;
    int mes;
    int ano;

    void preenchadata(int dia, int mes, int ano) {
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    String getFormatada() {
        return this.dia + "/" + this.mes + "/" + this.ano;
    }
}

class testaFuncionario {
    public static void main(String[] args) {

        Funcionario thiago = new Funcionario();
        thiago.salario = 1000.0;

        thiago.dataDeEntradaNoBanco = new Data();
        thiago.dataDeEntradaNoBanco.preenchadata(18, 7, 1989);

        thiago.titular = new Pessoa();
        thiago.titular.nome = "Thiago Cunha";
        thiago.titular.departamento = "Desenvolvimento";
        thiago.titular.rg = "23237777-7";



        thiago.mostra();

    }
}
8 respostas

Oi Thiago, tudo bem?

Esse erro ocorre na hora de executar o programa, pois ele precisa que a classe contenho um método chamado main, que serve como ponto de partida para o java executar a aplicação.

No caso do código que você postou, pode fazer o seguinte.

Compila o seu arquivo .java onde essas classes estão, substituindo o "arquivo" por o nome que você tem aí:

javac arquivo.java

Executa, a classe que contém o método main, que no seu caso do código que você postou é testaFuncionario. Lembrando que aqui você não põe o ".class" no final:

java testaFuncionario

Vê se funciona? Qualquer coisa avisa.

Abraço.

Já fiz isso! E não funciona.

solução!

Aaah, Tiago, eu me confundi aqui, mil perdões...

Na verdade, ele não está encontrando a classe TestaFuncionario, com o "T" maiúsculo, pois de acordo com o código que você postou aqui, o "t" esta em minúsculo.

Altera o nome da classe para:

class TestaFuncionario { // T maiusculo
}

Compila navamente e executa, que deve passar a funcionar.

Lembrando que o java testaFuncionario, com o "t" minúsculo funciona, mas é bom seguir o padrão de que nome de classe inicia com letra maiúscula.

Qualquer coisa avisa.

Abraço.

Agora foi!!! Graças a Deus!!!

1 ano no mundo da programação, apredendo passo a passo, e as vezes os erros são tão ridículos. Vlw mesmo Lucas!!!

E esse negócio de orientação a objetos. É coisa de louco!!!

Oi Thiago! Que bom que funcionou! :)

Algumas vezes esses erros acontecem mesmo, normal!

Qualquer dúvida é só abrir um tópico.

Bons estudos!

public class Funcionario {

    String nome;
    String departamento;
    double salario;
    String rg;
    Data dataEntr;

    void recebeAumento(double aumento) {
        if (this.salario < 1000.0) {
            this.salario += aumento;
        } else {
            this.salario += 0;
        }
    }

    double calculaGanhoAnual() {
        return this.salario * 12;
    }

    void mostra() {

        System.out.println("Nome: " + this.nome);
        System.out.println("RG: " + this.rg);
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Salário: " + this.salario);
        System.out.println("Ganho Anual: " + this.calculaGanhoAnual());
        System.out.println("Data: " + this.dataEntr.getFormatada());
    }
}
public class Data {

    int dia;
    int mes;
    int ano;

    void preencheData(int dia, int mes, int ano) {
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    String getFormatada() {

        return "Dia: " + this.dia + "\nMês: " + this.mes + "\nAno: " + this.ano;
    }

}
public class TestaFuncionario {
    public static void main(String[] args) {

        Funcionario f = new Funcionario();
        f.nome = "Robson Carvalho";
        f.rg = "22.271.821.3";
        f.departamento = "TI";
        f.salario = 2254.0;
        f.recebeAumento(500.0);
        f.calculaGanhoAnual();

        Data dataEntr = new Data();
        dataEntr.preencheData(05, 11, 2015);

        f.mostra();


    }

}

Oi Robson, tudo bem?

Esse tópico foi encerrado. Caso esteja com algum problema, pode abrir um novo explicando a dúvida, por favor?

Um abraço.