Arrays Exercício Opcional Metodo Mostra() [Dúvida]

2 respostas
Mick_xD

Estou fazendo exercícios da apostila Caleum fj11 e naum estou conseguindo chamar o método mostra() da class Funcionario alguem pode me dar uma luz agradecido desde já!

Segue a baixo o código.

class Data {

	int dia;
	int mes;
	int ano;

}

class Funcionario {

	String nome;
	double salario;
	String departamento;
	Data dataDeEntrada;
	String rg;
	boolean estaNaEmpresa;
	
	
	void bonifica(double aumento) {
		this.salario = this.salario + aumento;
	}
	
	void demite() {
		this.estaNaEmpresa = false;
	}
	
	void mudaDeDepartamento(String novoDepartamento) {
		this.departamento = novoDepartamento;
	}
	
	void mostra() {
		System.out.println("Nome: " + this.nome);
		System.out.println("Departamento: " + this.departamento);
		System.out.println("Data de entrada: " + this.dataDeEntrada.dia + "/" + this.dataDeEntrada.mes + "/" + this.dataDeEntrada.ano);
		System.out.println("Portador do RG: " + this.rg);
		System.out.println("Salario atual: " + this.salario);
		if (!this.estaNaEmpresa) {
			System.out.println("Infelizmente o funcionario foi demitido!");
		}else {
			System.out.println("Esta ativo na empresa!");
		}
	}

}

class Empresa {
	
	Funcionario[] empregados;
	String cnpj;
	
	void adiciona(Funcionario f) {
		for (int i = 0; i < this.empregados.length; i++) {
			if(this.empregados[i] == null) {
				this.empregados[i] = f;
				break;
			}
		}
	}
	
	void mostraEmpregados() {
		int i = 0;
		while(this.empregados[i] != null) {
			System.out.println("Funcionario na posição: " + i);
			System.out.println("Salario: " + this.empregados[i].salario);
			i++;
		}
	}

}
class TestaEmpresa {
	
	public static void main(String[] args) {
	
		Empresa empresa = new Empresa();
		empresa.empregados = new Funcionario[10];
		
		for (int i = 0; i < 4; i++) {
		Funcionario f = new Funcionario();
		f.salario = 100 + i * 100;
		empresa.adiciona(f);
		}
		
		empresa.mostraEmpregados();
		
		
	}

}

Não sei bem onde chamar esse metodo se é na class empresa ou na class TestaEmpresa.

Agradeço pela atenção!

2 Respostas

Scoobydoo

Poderia implementar assim… Depende do que você precisa

void mostraEmpregados() { int i = 0; while(this.empregados[i] != null) { System.out.println("Funcionario na posição: " + i); this.empregados[i].mostra(); // Vai mostrar os dados do funcionario System.out.println("Salario: " + this.empregados[i].salario); i++; } }

Mick_xD

Vlw cara tava colocando dentro de um de System.out.println(), erro de iniciante xD!

Criado 22 de março de 2011
Ultima resposta 22 de mar. de 2011
Respostas 2
Participantes 2