Essa parte de seu código não está dentro de método nenhum, tá solto na classe.
e outra, não é necessário chamar o método length() de um tipo inteiro primitivo.
a variavel count1 não existe.
Hammer
bem, se elmbre q os dados do array sao acessados a partir do zero, entao ele vai dro 0 ate o 9 e nao do 1 ate o 10
por isso inicialize o count no for com 0 e nao com 10
e no avaliazao utiliza so < e nao <=
e seria funcionario.length ao invez d count.length n?
Raff
Cara o que tem haver isso que você disse, que o codigo está solto na classe não pode tipo não entendi isso naun amigo poderia explicar melhor ???
Marck
Cara, não consegui testar mas tenta isso:
publicclassEmpresa{publicStringnomeemp;publicStringcnpjemp;Funcionariop=newFuncionario();intcont=10;publicFuncionario2[]vet=newFuncionario2[cont];publicvoidDadosEmpresa(){//se vc usar < = vai estourar o vet. Use apenas <for(inti=0;i<vet.length;cont++){//aqui vc usa apenas cont. Se sua intenção era mostrarSystem.out.println("gravou"+cont);//mostra valor na posicao contSystem.out.println("gravou"+vet[cont]);}}}
eu não testei, mas acho q vai dar certo.
No caso o vetor declarado fora de metodos diz que eles são de intancia. Ja os que sao declarados dentro de metodos são locais e ficam na memoria apenas quando o metodo e executado.
henry.everton
bom legal mas to querendo avançar um pouco... o q estou fazendo é o seguinte... nesta classe que declarei um vetor do tipo dela, eu peço pro usuário digitar o nome do mesmo. ai eu faço um getNome para funcionario[cont] e está dando incompatibilidade. deem uma olhada no que eu fiz.
publicclassEmpresa{publicStringnomeemp;publicStringcnpjemp;publicStringDadosEmpresa(){// instanciei a classe pra utilizar o set e o get da classe pra acessar o atributo NomeFuncionariop=newFuncionario();// declarei o vetor do tipo da classeFuncionario[]funcionario;intcont=10;funcionario=newFuncionario[cont];for(cont=0;cont<10;cont++){// p.setNome pra setar o nome, mas ai vem a duvida q vou descrever. Bom mas vai pedir 10 vezes pra escrever o nomep.setNome();// aqui eu faço um getNome para funcionario[cont], é onde esta dando errofuncionario[cont]=p.getNome();System.out.println("gravou"+cont);System.out.println(funcionario[cont]);}}}
Marck
manda a outra classe.
henry.everton
importjavax.swing.*;importjava.io.*;publicclassFuncionario{/*######################################################################################### # # # Variáveis # # # #########################################################################################*/privateStringnome="";privateStringdepto="";privatedoublesalario=0;privateStringadmissao="";privateStringrg="";privatebooleanstatus;privateStringstatusadm="";/*######################################################################################### # # # Metodos set # # # #########################################################################################*/publicvoidsetNome(){nome=JOptionPane.showInputDialog(null,"Digite o nome do funcionário","Info Funcionário",JOptionPane.PLAIN_MESSAGE);this.nome=nome;}/*######################################################################################### # # # Metodos get # # # #########################################################################################*/publicStringgetNome(){return(this.nome);}/*######################################################################################### # # # Metodos # # # #########################################################################################*/publicvoidBonifica(){intrec=(JOptionPane.showConfirmDialog(null,"Deseja alterar o salário do funcionário "+this.nome+"?","Alteração de Salário",0,JOptionPane.QUESTION_MESSAGE));if(rec==0){this.salario=Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o valor para alteração do salário","Salário",JOptionPane.QUESTION_MESSAGE));}}publicvoidDemite(){intrec=JOptionPane.showConfirmDialog(null,"Deseja alterar o status do funcionáio "+this.nome+"?","Alteração de Status",0,JOptionPane.QUESTION_MESSAGE);if(rec==0){this.status=true;}else{this.status=false;}}publicvoidImprimeInfo(){JOptionPane.showMessageDialog(null,"Abaixo segue as informações do funcionário\n\n"+this.nome+"\n"+this.depto+"\n"+this.salario+"\n"+this.admissao+"\n"+this.rg,"Imprimindo Dados",JOptionPane.INFORMATION_MESSAGE);}}
Marck
Olha só…
voce pode criar o vetor com Object:
publicObject[]vet=newFuncionario2[cont];
ou de String:
publicString[]vet=newFuncionario2[cont];
seria o mais fácil a se fazer.
Não sei se há outra maneira.
Mrwin
Rapaz… só uma dica, pq vc não usa ArrayList?
//se for java 5 em diante
ArrayList lista = new ArrayList();
é mais fácil vc trabalhar com Arraylist, pq ele pode crescer com array o tamanho vai ficar fixo.
depois fica usando, list.add(Funcionario)… desse jeito vc fica livre de conversão (CAST) etc… e pode usar diretamente
lista.get(x).getXXXX ou setXXXXX
Outra coisa, aconselho vc a modelar melhor suas classes, tentando deixá-las mais dentro do padrão java beans… por exemplo, não é estranho vc ter um método setNome( “VAZIO” )… geralmente, todo método set recebe o q vai “setar”… se vc vai testar sua aplicação via terminal então o método main não deveria chamar: funcionario.setNome(joptionpane…);??
só sugestão.