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:
[quote]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)[/quote]
Oque eu tentei fazer:
[code]/**
- @(#)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();
}
}
}
[/code]
O erro é o seguinte: variable funcionario might not have been initialized funcionario[i] = new Empregado();
A classe Empregado:
[code]/**
- @(#)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());
}
}[/code]