[resolvido] Onde colocar um método e como

8 respostas
LeandroSantanaDiniz

[google]Oi, boa tarde.

Tenho as seguintes classes:

Data
Funcionario
Empresa
TesteEmpresa

sendo que na classe Funcionario eu tenho um método mostra(), que mostra os atributos do funcionário…

estou tentando colocar um método na classe Empresa que mostra todos os funcionários…

só que não estou conseguindo …

estou colocando esse novo método no lugar certo ?

8 Respostas

InicianteJavaHenriqu

Não sei poste o código.

:thumbup:

LeandroSantanaDiniz

segue a baixo:

:slight_smile:

Data.java :

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

Funcionario.java :

public class Funcionario
{

	String nome;
	int depto;
	double salario;
	String rg;
	boolean ativo = true;
	Data data = new Data();
	
	
	
	
	void bonifica(double valor)
	{
		this.salario += valor;
	}

	void demite()
	{
		this.ativo = false;
	}
	
	void mostra()
	{
			System.out.println("Nome: " + nome);
			System.out.println("Depto: " + depto);
			System.out.println("Salario: " + salario);
			System.out.println("Rg: " + rg);
			System.out.println("Ativo? : " + ativo);
			System.out.println("dia" + data.dia + "mes" + data.mes + "ano" + data.ano );
	}
}

Empresa.java :

public class Empresa
{

	String cnpj;
	Funcionario[] func = new Funcionario[10];



	int qualArrayColocar(Funcionario[] array)
	{
		int contador = 0;
		for(Funcionario x : array)
		{
			if(x == null)
			{
				break;
			}
			else
			{
				contador++;
			}
		}
		return contador;
	}
	

	void adicionaFuncionario()
	{
		int posicao = qualArrayColocar(func);
		
		func[posicao] = new Funcionario();
	}
	


	void adicionaFuncionario(Funcionario enderecoDeMemoria)
	{
		int posicao = qualArrayColocar(func);
		
		func[posicao] = enderecoDeMemoria;
		 		
	}


	void mostraTodosEmpregados(Funcionario[] recebeArray)
	{
		
		int loop = 0;
		
		for(loop : recebeArray)
		{
			func[loop].mostra();
		}
	}
}

TesteEmpresa.java

public class TesteEmpresa
{
	public static void main(String[] args)
	{
		
		Empresa emp1 = new Empresa();
		
					
		emp1.adicionaFuncionario();
		emp1.adicionaFuncionario();
		emp1.adicionaFuncionario();
		
		Funcionario f1 = new Funcionario();
		
		f1.nome = "Leandro";
		
		emp1.adicionaFuncionario(f1);
		emp1.adicionaFuncionario(f1);
		
		
		System.out.println(emp1.func[0]);
		System.out.println(emp1.func[1]);
		System.out.println(emp1.func[2]);
		System.out.println(emp1.func[3]);
		System.out.println(emp1.func[4]);
		
		System.out.println(emp1.func[3].nome);
	}
}

É isso aí !!
Desculpe algum erro aí!
:smiley:

Kevin_Stortz1

Cara depende de como voce estiver fazendo, pode colocar o método ai sim sem nenhum problema, mas precisa instanciar a classe de funcionário na classe empresa e fazer um loop para apresentar todos os funcionários cadastrados

LeandroSantanaDiniz

então, eu to com dúvida se estou colocando no lugar certo

e também estou com dúvida no código do meétodo

mostraTodosEmpregados()

caio.gaspar

No metodo mostraTodosEmpregados voce esta recebendo um array de funcionarios, não é necessário ter aquele int “loop”, faz o for assim:

void mostraTodosEmpregados(Funcionario[] recebeArray)  
    {  
          
        for(Funcionario funcionario : recebeArray)  
        {  
            funcinario.mostra();  
        }  
    }
LeandroSantanaDiniz
void mostraTodosEmpregados(Funcionario[] recebeArray)
	{
		
		for(Funcionario loop : recebeArray)
		{
			loop.mostra();
		}
	}

assiim ?

caio.gaspar
LeandroSantanaDiniz:
void mostraTodosEmpregados(Funcionario[] recebeArray)
	{
		
		for(Funcionario loop : recebeArray)
		{
			loop.mostra();
		}
	}

assiim ?

isso...

LeandroSantanaDiniz

obrigado pessoal !

Criado 25 de maio de 2012
Ultima resposta 25 de mai. de 2012
Respostas 8
Participantes 4