Alguém poderia me informar onde estou errando ? o método mostraEmpregados() da classe Empresa não está imprimindo o nome e o salário dos funcionários . Agradeceria se alguém pudesse me tirar esta dúvida.
Grato,
public class Empresa
{
String nomeDaEmpresa = "TESTE S/A";
String cnpj = "05.021.369/0001-42";
Funcionario[] empregados;
public void adiciona( Funcionario f )
{
for( int i = 0 ; i < empregados.length ; i++ )
{
empregados[i] = f;
}
}
public void mostraEmpregados()
{
for( int i = 0 ; i < empregados.length ; i++ )
{
System.out.printf("Empregado: %s Salário: R$ %.2f\n",
empregados[i].getNome().toUpperCase(), empregados[i].getSalarioAtual());
}
}
}
[code]
import java.util.Scanner;
public class TestaEmpresa
{
public static void main(String[] args)
{
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[3];
Scanner entrada = new Scanner(System.in);
for( int i = 0 ; i < empresa.empregados.length ; i++ )
{
Funcionario f = new Funcionario();
System.out.print("Nome: ");
String nomeFunc = entrada.next();
f.nome = nomeFunc;
empresa.adiciona(f);
System.out.print("Salário: R$ ");
double sal = entrada.nextDouble();
f.salarioAtual = sal;
empresa.adiciona(f);
}
empresa.mostraEmpregados();
}
da uma lida nos conceitos de criação de atributos em uma entidade.
vou postar o seu codigo, mas é para vc estudar heinn…
public class Empresa {
private String nomeDaEmpresa;
private String cnpj;
private Funcionario[] empregados;
public Empresa(){
this.nomeDaEmpresa = "TESTE S/A";
this.cnpj = "05.021.369/0001-42";
this.empregados = new Funcionario[3];
}
public void adiciona(Funcionario funcionario, int index) {
empregados[index] = funcionario;
}
public void mostraEmpregados() {
for (Funcionario funcionario : empregados) {
System.out.printf("Empregado: %s Salário: R$ %.2f\n", funcionario.getNome().toUpperCase(), funcionario.getSalarioAtual());
}
}
public String getNomeDaEmpresa() {
return nomeDaEmpresa;
}
public void setNomeDaEmpresa(String nomeDaEmpresa) {
this.nomeDaEmpresa = nomeDaEmpresa;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public Funcionario[] getEmpregados() {
return empregados;
}
public void setEmpregados(Funcionario[] empregados) {
this.empregados = empregados;
}
}
import java.util.Scanner;
public class TestaEmpresa {
public static void main(String[] args) {
Empresa empresa = new Empresa();
Scanner entrada = new Scanner(System.in);
for( int i = 0 ; i < empresa.getEmpregados.length ; i++ ){
funcionario = new Funcionario();
System.out.print("Nome: ");
funcionario.setNome(entrada.next());
System.out.print("Salário: R$ ");
funcionario.setSalarioAtual(entrada.nextDouble());
empresa.adiciona(f, i);
}
empresa.mostraEmpregados();
}
}
estou passando pelo mesmo problema mas acontece que esse metodo adiciona que vc colocou usando esta variavel index difere do que o enunciado do exercico manda fazer. o enunciado manda voce iniciar o metodo assim
void adiciona(Funcionario f) {
// algo tipo:
// this.empregados[ ??? ] = f;
// mas que posição colocar?
}
ai acontece comigo o mesmo problema… o salario de todos aparece igual… ate aqui tava entendendo tranquilo agora que começou array ta complicado, rsrs abraço