Kenishi 0 Denunciar post Postado Janeiro 17, 2008 Estou estudando JAVA por uma apostila da Caelum, e segui bem até o capítulo de arrays, qdo o exercício pede que crie um array para referenciar a classe Funcionário, copiei o código abaixo, vocês podem me ajudar em como fazer essa referência de forma correta? a classe main está vazia. package TesteArray; class Funcionario { int codigo; String nome; String setor; double salario; } class Empresa{ String nome; Funcionario[] funcionarios = new Funcionario[10]; funcionarios[0] = new Funcionario(); ==> Pau de compilação (==><==) void escreve(){ System.out.println("\t FUNCIONARIO "); } } Como faço para conseguir acessar o funcionários[0].algumaCoisa dentro da classe Empresa????? Se retiro a linha funcionarios[0] = new Funcionario(); funciona, inclusive a referência feita no main ao método escreve. Obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Janeiro 17, 2008 Nessa linha voce criou 10 objetos do tipo funcionario. Funcionario[] funcionarios = new Funcionario[10]; Para diferenciar os 10 objetos voce acessa os métodos e atributos da classe referenciando também o índice da variável funcionarios. Na main instancie empresa e faça isso: System.out.println(funcionarios[0].nome); Essa linha realmente está errada. Citar funcionarios[0] = new Funcionario(); ==> Pau de compilação (==><==) http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Kenishi 0 Denunciar post Postado Janeiro 17, 2008 Kandrare, entendi o que você disse, mas o que estou tentando fazer é com que o método void escreve(){ System.out.println("\t FUNCIONARIO "); } Escreva o nome de todos os funcionários da empresa, algo do tipo void escreve(String nome){ System.out.println(nome); for ( int i = 0; i <= this.funcionarios.length; i++ ){ System.out.println(this.funcionarios.nome); } Ele compila, mas dá erro em run time. :( Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Janeiro 17, 2008 você pode utilizar a classe List, pois facilita o trabalho com arrays de objetos // criação do list List<Funcionario> listFuncionario = new ArrayList<Funcionario>(); // adicionando um funcionario ao list Funcionario f = new Funcionario(); listFuncionario.add(f); // consultando o list for(Funcionario funcionario : listFuncionario) { System.out.println(funcionario.getNome()); } Flwww, grande abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Janeiro 17, 2008 Redefina o metodo escreve assim: void escreve(String func){ System.out.println("\t FUNCIONARIO: " + func); } Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Janeiro 17, 2008 Tenta assim package TesteArray; public class Funcionario { private int codigo; private String nome; private String setor; private double salario; // getters.. // setters } public class Empresa{ private String nome; private List<Funcionario> funcionarios = new ArrayList<Funcionario>(); // getters... //setters... public void addFuncionario(Funcionario funcionario) { this.funcionarios.add(funcionario); } public void listarTodosFuncionarios() { for(Funcionario funcionario : this.funcionarios) { System.out.println(funcionario.getNome()); } } public static void main(String[] args) { Empresa empresa = new Empresa(); Funcionario funcionario1 = new Funcionario(); funcionario1.setNome("Funcionário 1"); empresa.addFuncionario(funcionario1); Funcionario funcionario2 = new Funcionario(); funcionario2.setNome("Funcionário 2"); empresa.addFuncionario(funcionario2); empresa.listarTodosFuncionarios(); } } Compartilhar este post Link para o post Compartilhar em outros sites
HugoOliveiraSQL 0 Denunciar post Postado Abril 12, 2009 eu to no mesmo exercicio e to com dificuldade em criar o array ... tipo, fica dando erro nessa classe List, fala que nao existe, tem como disponibilizar ela ou ela ja vem no pacote do java? meu código ta assim: http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif package Apostila_FJ11_Conta; class Empresa { String nome; String cnpj; String endereco; Funcionarios[] Funcionarios = new Funcionarios[10]; void adiciona(Funcionarios f){ for (int i = 0; i < 10;i++){ this.Funcionarios = f; } } void mostra() { for ( int i = 0; i <= this.Funcionarios.length; i++ ){ System.out.println(this.Funcionarios.nome); } } } ele ta rodando normal.. mas eu queria saber, como que eu vou fazer sem definir o tamanho da array.. colocar ela como se fosse infinita, ir aumentando de acordo com for aumentado os funcionarios... vlw galera Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Abril 12, 2009 Citar ele ta rodando normal.. mas eu queria saber, como que eu vou fazer sem definir o tamanho da array.. colocar ela como se fosse infinita, ir aumentando de acordo com for aumentado os funcionarios... Use o exemplo acima. Para usar List e ArrayList importe o pacote java.util. import java.util.* Compartilhar este post Link para o post Compartilhar em outros sites
HugoOliveiraSQL 0 Denunciar post Postado Abril 13, 2009 o vlw aii.. deu certo aki agora soh to com duvida em como vou criar as Getters e Setters =S to começando a programar agora... sou bem inexperiente ainda hehehe desd ja agradeço abraços Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Abril 14, 2009 Bom....primeiramente os Getters e Setters são métodos responsáveis por retornar/modificar o valor de uma variável de instancia. Além de criar os métodos voce precisa do modificador private nas variáveis de instancia. Um exemplo: class Human{ private int idade; // setter public void setIdade(int idade){ this.idade = idade; } // getter public int getIdade(){ return this.idade; } } Tem muito mais a se falar dos setters e getters. Se quiser maiores detalhes nos pergunte ou procure no google algum material. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites