[RESOLVIDO]duvida para passar valor entre classes

13 respostas
Scobar20

Tenho 3 classes. Uma classe Funcionario, uma classe Empresa e outra classe Principal. Quero passar um valor na classe principal, fazer o valor passar pela classe funcionario e chegar na empresa. O valor poderia ser o nome da empresa. Que seria a empresa em que o funcionario trabalha.

13 Respostas

M

Você fez algum código, se sim, posta ai, fica mais fácil de ajudar;)

Scobar20
Segue os códigos, estas classes foram feitas de acordo com o que venho vendo em um curso. Acho que isso explica algumas coisas ja....XD
class PrincipalEmpresa{
	public static void main( String[] args){
		
		Funcionario funcionario1 = new Funcionario();
		// nome, rg, cargo e salário.
		funcionario1.setNome( (String)"Paulo");
		funcionario1.setRg( (String)"55.497.358-2");
		funcionario1.setCargo( (String)"Gerente");
		funcionario1.setSalario( (double)7.980);
		
		Funcionario funcionario2 = new Funcionario();
		funcionario2.setNome( (String)"Evandro");
		funcionario2.setRg( (String)"78.589.356-X");
		funcionario2.setCargo( (String)"Diretor");
		funcionario2.setSalario( (double)5.678);
		
		Funcionario funcionario3 = new Funcionario();
		funcionario3.setNome( (String)"Paulo");
		funcionario3.setRg( (String)"89.754.218-8");
		funcionario3.setCargo( (String)"Assistente do Diretor");
		funcionario3.setSalario( (double)1.200);
		
		Funcionario funcionario4 = new Funcionario();
		funcionario4.setNome( (String)"Leonardo");
		funcionario4.setRg( (String)"22.485.967-7");
		funcionario4.setCargo( (String)"Desenvolvedor");
		funcionario4.setSalario( (double)3.452);
		
		Funcionario funcionario5 = new Funcionario();
		funcionario5.setNome( (String)"Antonio");
		funcionario5.setRg( (String)"13.245.759-X");
		funcionario5.setCargo( (String)"Estagiario");
		funcionario5.setSalario( (double)1.200);
		
		Empresa empresa1 = new Empresa();
		empresa1.setNome( (String)"Atacadão Scobar");
		empresa1.setAnoDeFundacao( (short)1948);
		empresa1.setNacionalidade( (String)"Brasileira");
		
		Empresa empresa2 = new Empresa();
		empresa2.setNome( (String)"ALL");
		empresa2.setAnoDeFundacao( (short)1923);
		empresa2.setNacionalidade( (String)"Argentina");
         }
}
class Funcionario{
	private String nome;
	private String rg;
	private String cargo;
	private Double salario;
	
	// Métodos set e get da variável nome.
	public void setNome( String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	// Métodos set e get da variável rg.
	public void setRg( String rg){
		this.rg = rg;
	}
	
	public String getRg(){
		return rg;
	}
	
	// Métodos set e get da variável cargo.
	public void setCargo( String cargo){
		this.cargo = cargo;
	}
	
	public String getCargo( String cargo){
		return cargo;
	}
	
	// Métodos set e get da variável salario.
	public void setSalario( Double salario){
		this.salario = salario;
	}
	
	public Double getSalario(){
		return salario;
	}
}
class Empresa{
	// Declaração de variáveis.
	private String nome;
	private Short anoDeFundacao;
	private String nacionalidade;
	
	// Métodos set e get da variável nome.
	public void setNome( String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	// Métodos set e get da variável anoDeFundacao.
	public void setAnoDeFundacao( Short anoDeFundacao){
		this.anoDeFundacao = anoDeFundacao;
	}
	
	public Short getAnoDeFundacao(){
		return anoDeFundacao;
	}
	
	// Métodos set e get da variável nacionalidade.
	public void setNacionalidade( String nacionalidade){
		this.nacionalidade = nacionalidade;
	}
	
	public String getNacionalidade(){
		return nacionalidade;
	}
}
M

Então pelo o que entendi, você quer fazer um valor de funcionário chegar a empresa?, por exemplo, quer passar o cargo do funcionário para empresa

Scobar20

Na verdade quero passar o nome da empresa para o funcionario. Lembrando que estou fazendo a inicialização da empresa na classe Principal.

victorrgds

usa o extends e faz um super na classe funcionário, se eu estiver errado me corrijam…

abs,

M

Então, você quer passar o nome da empresa para o funcionario,
Você poderia fazer um vinculo entre os funcionários e a empresa.

A empresa é que tem os funcionários, ela que cria os mesmos, então poderia fazer a sua empresa armazenar os funcionários em um array, por exemplo:

Na sua classe Empresa, poderia criar um array de tipo Funcionário,

class Empresa{  
    // Declaração de variáveis.  
    private String nome;  
    private Short anoDeFundacao;  
    private String nacionalidade; 
    Funcionario []funcionarios;

Na sua classe Principal, você cria as empresas e os funcionarios.

Empresa empresa1 = new Empresa();  
    empresa1.setNome( (String)"Atacadão Scobar");  
    empresa1.setAnoDeFundacao( (short)1948);  
    empresa1.setNacionalidade( (String)"Brasileira");
    empresa1.funcionarios = new Funcionario[5]; // nesse caso coloquei o tanto de funcionários que a empresa teria
    empresa1.funcionarios[0]=funcionario1; // Aqui coloco o funcionario1 dentro da empresa1
    System.out.println("O funcionario: "+empresa1.funcionarios[0].getNome()+" trabalha na empresa "+empresa1.getNome());

Então, encontrei esse modo de fazer, vê se ajuda;)

Scobar20

Michael Myers:
Então, você quer passar o nome da empresa para o funcionario,
Você poderia fazer um vinculo entre os funcionários e a empresa.

A empresa é que tem os funcionários, ela que cria os mesmos, então poderia fazer a sua empresa armazenar os funcionários em um array, por exemplo:

Na sua classe Empresa, poderia criar um array de tipo Funcionário,

class Empresa{  
    // Declaração de variáveis.  
    private String nome;  
    private Short anoDeFundacao;  
    private String nacionalidade; 
    Funcionario []funcionarios;

Na sua classe Principal, você cria as empresas e os funcionarios.

Empresa empresa1 = new Empresa();  
    empresa1.setNome( (String)"Atacadão Scobar");  
    empresa1.setAnoDeFundacao( (short)1948);  
    empresa1.setNacionalidade( (String)"Brasileira");
    empresa1.funcionarios = new Funcionario[5]; // nesse caso coloquei o tanto de funcionários que a empresa teria
    empresa1.funcionarios[0]=funcionario1; // Aqui coloco o funcionario1 dentro da empresa1
    System.out.println("O funcionario: "+empresa1.funcionarios[0].getNome()+" trabalha na empresa "+empresa1.getNome());

Então, encontrei esse modo de fazer, vê se ajuda;)

Ajuda e muito Michael Myers…brigado cara… :smiley:

Scobar20

victorrgds:
usa o extends e faz um super na classe funcionário, se eu estiver errado me corrijam…

abs,

VLW, pela dica mas infelizmente ainda não aprendi a usar o extends, vou procurar algo melhor sobre ele…

E
Funcionario funcionario5 = new Funcionario();  
        funcionario5.setNome( (String)"Antonio");  
        funcionario5.setRg( (String)"13.245.759-X");  
        funcionario5.setCargo( (String)"Estagiario");  
        funcionario5.setSalario( (double)1.200);

Não fique fazendo casts a torto e a direito. Pra começar, normalmente eles não fazem o que você deseja (conversão “mágica” de um tipo para outro), exceto em alguns casos especiais. Em C++ isso é usado e abusado (chegando ao ponto em que começa a entrar realmente no campo da verdadeira mágica). Em Java isso foi evitado.

Em vez disso, para deixar seu programa mais simples e claro, escreva apenas:

Funcionario funcionario5 = new Funcionario();  
        funcionario5.setNome ("Antonio");
        funcionario5.setRg ("13.245.759-X");  
        funcionario5.setCargo ("Estagiario");  
        funcionario5.setSalario (1200);

“Antonio” já é uma String, se ele fosse o número 10 não seria assim que você iria fazer a conversão:

(String) 10 não funciona.

Além disso, para escrever 1200 em Java, não use o ponto, que serve para separar a parte inteira da fracionária. A menos que o Antônio ganhe um real e vinte centavos por mês :frowning:

Scobar20

entanglement:
Funcionario funcionario5 = new Funcionario(); funcionario5.setNome( (String)"Antonio"); funcionario5.setRg( (String)"13.245.759-X"); funcionario5.setCargo( (String)"Estagiario"); funcionario5.setSalario( (double)1.200);

Não fique fazendo casts a torto e a direito. Pra começar, normalmente eles não fazem o que você deseja (conversão “mágica” de um tipo para outro), exceto em alguns casos especiais. Em C++ isso é usado e abusado (chegando ao ponto em que começa a entrar realmente no campo da verdadeira mágica). Em Java isso foi evitado.

Em vez disso, para deixar seu programa mais simples e claro, escreva apenas:

Funcionario funcionario5 = new Funcionario();  
        funcionario5.setNome ("Antonio");
        funcionario5.setRg ("13.245.759-X");  
        funcionario5.setCargo ("Estagiario");  
        funcionario5.setSalario (1200);

“Antonio” já é uma String, se ele fosse o número 10 não seria assim que você iria fazer a conversão:

(String) 10 não funciona.

Além disso, para escrever 1200 em Java, não use o ponto, que serve para separar a parte inteira da fracionária. A menos que o Antônio ganhe um real e vinte centavos por mês :frowning:

Vlw pelas dicas, a parte do ponto, eu saquei que tinha algo errado mas nem me toquei que não deveria coloca-lo…kkkkkk
e os casts, usei por engano mesmo.

Scobar20

Tem como passar o nome da empresa para o funcionario e chamar na classe Principal sem usar array algum???

pmlm

victorrgds:
usa o extends e faz um super na classe funcionário, se eu estiver errado me corrijam…

abs,


Totalmente errado.

Funcionário não é uma Empresa…

Sim, usas só a parte em que o funcionário sabe qual é a sua empresa mas a empresa não sabe quais são os seus funcionários…

Empresa empresa1 = new Empresa();    
empresa1.setNome("Atacadão Scobar");    
empresa1.setAnoDeFundacao(1948);    
empresa1.setNacionalidade("Brasileira");  

Funcionario funcionario1 = new Funcionario();  
funcionario1.setNome("Paulo");  
funcionario1.setRg("55.497.358-2");  
funcionario1.setCargo("Gerente");  
funcionario1.setSalario(7980); 
funcionario1.setEmpresa(empresa1);

System.out.println("O funcionario " + funcionario1.getNome() + " trabalha na empresa " + funcionario1.getEmpresa().getNome());
Scobar20
pmlm:
victorrgds:
usa o extends e faz um super na classe funcionário, se eu estiver errado me corrijam...

abs,


Totalmente errado.

Funcionário não é uma Empresa...

Scobar20:
Tem como passar o nome da empresa para o funcionario e chamar na classe Principal sem usar array algum???
Sim, usas só a parte em que o funcionário sabe qual é a sua empresa mas a empresa não sabe quais são os seus funcionários...
Empresa empresa1 = new Empresa();    
empresa1.setNome("Atacadão Scobar");    
empresa1.setAnoDeFundacao(1948);    
empresa1.setNacionalidade("Brasileira");  

Funcionario funcionario1 = new Funcionario();  
funcionario1.setNome("Paulo");  
funcionario1.setRg("55.497.358-2");  
funcionario1.setCargo("Gerente");  
funcionario1.setSalario(7980); 
funcionario1.setEmpresa(empresa1);

System.out.println("O funcionario " + funcionario1.getNome() + " trabalha na empresa " + funcionario1.getEmpresa().getNome());

brigadão cara, ficou certinho como eu queria....

Criado 3 de julho de 2012
Ultima resposta 3 de jul. de 2012
Respostas 13
Participantes 5