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…
[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
[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
[/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…