[RESOLVIDO]duvida para passar valor entre classes

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.

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

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

[code]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");
     }

}[/code]

[code]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;
}

}[/code]

[code]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;
}

}[/code]

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

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

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

abs,

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;)

[quote=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;)[/quote]

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

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

abs,[/quote]

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

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:

[quote=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:
[/quote]

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.

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

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

abs,[/quote]
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());

[quote=pmlm][quote=victorrgds]usa o extends e faz um super na classe funcionário, se eu estiver errado me corrijam…

abs,[/quote]
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…

[code]
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());
[/code][/quote]

brigadão cara, ficou certinho como eu queria…