Inicializacao de array

2 respostas
C

Olá a todos, eu tenho um exercicio para entregar em meu curso e estou com dúvidas no meu array de como inicializá-lo, pois ele possui algumas especificacoes em seu construtor...

Preciso incializar um array do tipo Empregados (classe criada por mim) de tamanho 30 com as seguintes especificacoes:

Crie uma aplicação que leia as informações de cada empregado e armazene-os em um vetor de empregados,
utilize os 3 construtores da seguinte forma:
? índice do vetor múltiplo de 2: construtor 1 (sem argumentos)
? índice do vetor múltiplo de 3: construtor 2 (com 3 argumentos)
? demais: construtor 3 (com argumento objeto Empregado)

Oque eu tentei fazer:

/**
 * @(#)TesteEmpregado.java
 *
 *
 * @author Ricardo Crivelli
 * @version 1.00 2008/9/9
 */
import java.util.*;

public class TesteEmpregado {

    public static void main(String[] args) {
    	
    	Scanner input = new Scanner( System.in );
        int horas;
        double salarioHoras;
        String nome;
        Empregado funcionario[];    
        
        for(int i=0; i<30; i++) {
        	System.out.println("Digite o nome do funcionário: ");
        	nome = input.nextLine();
        	System.out.println("Digite as horas trabalhadas: ");
        	horas = input.nextInt();
        	System.out.println("Digite o valor de cada hora trabalhada: ");
        	salarioHoras = input.nextDouble();        	
        	if(i%2==0)
        		funcionario[i] = new Empregado();
        	else 
        		if(i%3==0)
        			funcionario[i] = new Empregado( nome, horas, salarioHoras);
        		else {
        			Empregado e = new Empregado( nome, horas, salarioHoras );
        			funcionario[i] = new Empregado( e );
        		}
        }
        
        for(int i=0; i<30; i++) {
        	funcionario[i].toString();
        }
        
    }
}

O erro é o seguinte: variable funcionario might not have been initialized funcionario[i] = new Empregado();

A classe Empregado:
/**
 * @(#)Empregado.java
 *
 *
 * @author Ricardo Crivelli
 * @version 1.00 2008/9/9
 */


public class Empregado {

	String nome;
	int horas;
	double salarioHora;
	
    public Empregado() {
    	nome = "";
    	horas = 0;
    	salarioHora=0.00;
    }
    
    public Empregado(String nome, int horas, double salarioHora) {
    	this.nome = nome;
    	setHoras( horas );
    	setSalarioHora( salarioHora );
    }
    
    public Empregado(Empregado empregado){
    	this.nome = empregado.nome;
    	setHoras( empregado.horas );
    	setSalarioHora( empregado.salarioHora );
    }
    
    public String getNome() {
    	return nome;
    }
    
    public int getHoras() {
    	return horas;
    }
    
    public double getSalarioHora() {
    	return salarioHora;
    }
    
    public double getSalario(){
    	double percentualHoraExtra = 0.5;
    	if(horas<41)
    		return salarioHora * horas;
    	else
    		return (salarioHora * horas) + ((salarioHora + (salarioHora * percentualHoraExtra)) * (horas - 40));
    }
    
    public void setNome( String nome ) {
    	this.nome = nome;
    }
    
    public void setHoras( int horas ) {
    	if(horas > 0)
    		this.horas = horas;
    	else
    		this.horas = 0;
    }
    
    public void setSalarioHora( double salarioHora ) {
    	if(salarioHora > 0)
    		this.salarioHora = salarioHora;
    	else
    		this.salarioHora = 0.00;
    }
    
    public String toString(){
    	return String.format("Nome: "+ nome +"\nHoras: "+ horas +"\nSalarioHora: "+ salarioHora +"\nSalario: "+ getSalario());
    }
    
    
    
}

2 Respostas

von.juliano

Faltou inicializar seu vetor de Empregados:

Empregado funcionario[] = new Empregado[30];

Blz? Flw! :thumbup:

C

Brigadão cara… errinho tonto!! =D

Criado 10 de setembro de 2008
Ultima resposta 10 de set. de 2008
Respostas 2
Participantes 2