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

Não consigo imprimir

Criei toda a estrutura passo a passo de acordo com o curso porem não consigo printar a mostra empregados a única coisa que é imprimida são os métodos da classe principal nada relacionado a teste empresa sai

package funcionario;

public class TesteEmpresa {
    public static void main(String[] args) {
    Empresa empresa = new Empresa();
    empresa.empregados = new Funcionario [2];


    Funcionario Lucas = new Funcionario();
    Lucas.anual = 12000;
    Lucas.departamento = "qual quer um";
    Lucas.salario = 1650.00;
    Lucas.pessoa = new Pessoa();
    Lucas.pessoa.nome = "Lucas Alves ";
    Lucas.pessoa.rg = 5648949;

    empresa.adicionar(Lucas);

    Funcionario Alves = new Funcionario();
    Alves.anual = 12000;
    Alves.departamento = "qual quer um";
    Alves.salario = 1650.00;
    Alves.pessoa = new Pessoa();
    Alves.pessoa.nome = "Alves Cardoso";
    Alves.pessoa.rg = 5648949;

    empresa.adicionar(Alves);

    Funcionario Cardoso = new Funcionario();
    Cardoso.anual = 12000;
    Cardoso.departamento = "qual quer um";
    Cardoso.salario = 1650.00;
    Cardoso.pessoa = new Pessoa();
    Cardoso.pessoa.nome = "Cardoso de jesus";
    Cardoso.pessoa.rg = 5648949;

    empresa.adicionar(Cardoso);
    empresa.mostraEmpregados();
    }
}

----


package funcionario;

public class Empresa {
    String nome;
    String cnpj;
    Funcionario [] empregados; //aqui eu criei um array do tipo funcionario sem um tamanho definido
    String email;
    String endereço;
    int livre = 0;

    void adicionar (Funcionario func){
        this.empregados[this.livre] = func; //o atributo empregados dessa classe e livre dessa classe 
        this.livre ++;
    }

    void mostraEmpregados (){
        for(int i = 0 ; i < this.livre ; i ++){
            System.out.print("Esse eh o funcionario da posicao  " + i);
            System.out.print(this.empregados[i].salario);
        }

}

-----
package funcionario;

public class Funcionario {
    String departamento;
    double salario;
    Data datadeentrada;
    Pessoa pessoa;
    double anual = 0;

    void recebeaumento (double aumento){
        this.salario += aumento;
    }

    void salarioanual (double salario){
        this.anual += salario * 12;
    }

    void monstra (){
        System.out.println("Nome "+pessoa.nome);
        System.out.println("rg "+pessoa.rg);
        System.out.println("Cargo "+this.departamento);
        System.out.println("Salario "+this.salario);
//        System.out.println(getFormatada());
        System.out.println("Salario anual "+this.anual);
    }
}

----

package funcionario;


public class Principal {


    public static void main(String[] args) {

       Funcionario Lucas = new Funcionario();
       Lucas.departamento = "producao";
       Lucas.salario = 1193.30;
       Lucas.anual = 0;

       Lucas.pessoa = new Pessoa();
       Lucas.pessoa.nome = "Lucas Alves Cardoso";
       Lucas.pessoa.rg = 123456789;

       Lucas.datadeentrada = new Data();
       Lucas.datadeentrada.datadia = 13;
       Lucas.datadeentrada.datames = 05;
       Lucas.datadeentrada.dataano = 1994;

       System.out.println(Lucas.pessoa.nome);

       Lucas.recebeaumento(100);
       System.out.println(Lucas.salario);

       Lucas.salarioanual(Lucas.salario);
       System.out.println(Lucas.anual);
       Lucas.monstra();

       Funcionario Karine = new Funcionario();
       Karine.departamento = "Saude";
       Karine.salario = 1200.50;
       Karine.anual = 0;

       Karine.pessoa = new Pessoa();
       Karine.pessoa.nome = "Karine Fonseca";
       Karine.pessoa.rg = 987654321;

       if(Lucas != Karine){
           System.out.println("Não são iguais");
       }else{
           System.out.println("São iguais");
       }
       Funcionario Alex = new Funcionario ();
       Alex = Lucas;
       System.out.println(Alex.salario);


    }

}
4 respostas
solução!

Oi Lucas, tudo bem ?

Cara, cada classe que possui um método main ->public static void main(String[] args) <- é uma classe que pode ser executada, que irá rodar.

O que pode estar acontecendo é que você não está executando a classe TesteEmpresa e está mandando executar apenas a classe Principal.

Para você executar as classes que possui um método main, você precisa ir até a classe e pode pedir para executar utilizando o F11, estou acostumado a usar o atalho ctrl + alt + x J que executa a classe para gente.

Execute cada classe e vê se dá certo ai !

Abraços :D

Nossa Matheus obrigado novamente segunda vez que você me ajuda hoje no meu caso o f 11 abriu uma nova janela (Os arquivos desse código fonte ...) Porem eu acabei por descobrir que o shift + f6 executa a classe em questão . acabou ajudando de qual quer jeito :P.

porem agora me ocorreu outra duvida pq criar outra classe main ?

Bacana, o atalho do depende bastante de qual IDE você está usando, provavelmente deve estar usando o NetBeans, eu uso o Eclipse e também o IntelliJ, cada uma tem seu esquema de atalhos.

Usamos main nas classes para torna las executáveis. É bem comum usarmos mains para fazermos testes, onde temos cenários diferentes e queremos fazer validações, por exemplo você está fazendo o TesteEmpresa está testando a classe Empresa por exemplo, além disso o main também serve para executar um projeto desktop, mas é um único main para a aplicação toda.

Espero ter esclarecido essa dúvida :D

Sim obrigado