estou com um outro problema… já é o terceiro ja cara ta embaçado :oops:
entao estou tentando fazer um array de uma classe eu fiz deste jeito aqui:
[code]public class Empresa{
public String nomeemp;
public String cnpjemp;
Funcionario p = new Funcionario();
public Funcionario[] funcionario;
int cont = 10;
funcionario = new Funcionario[cont];
[b]public void DadosEmpresa(){[/b]
for (cont=10;cont<=cont.length;cont++){
p.setNome();
System.out.println("gravou"+cont1);
}
}
}[/code]
entao mas está dando erro, expected na linha sublinhada.
public class Empresa{
public String nomeemp;
public String cnpjemp;
Funcionario p = new Funcionario();
int cont = 10;
public Funcionario2 [] vet = new Funcionario2[cont];
public void DadosEmpresa(){
//se vc usar < = vai estourar o vet. Use apenas <
for (int i = 0; i <vet.length;cont++){
//aqui vc usa apenas cont. Se sua intenção era mostrar
System.out.println("gravou"+cont);
//mostra valor na posicao cont
System.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.
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.
[code]public class Empresa{
public String nomeemp;
public String cnpjemp;
public String DadosEmpresa(){
// instanciei a classe pra utilizar o set e o get da classe pra acessar o atributo Nome
Funcionario p = new Funcionario();
// declarei o vetor do tipo da classe
Funcionario[] funcionario;
int cont = 10;
funcionario = new Funcionario[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 nome
p.setNome();
// aqui eu faço um getNome para funcionario[cont], é onde esta dando erro
funcionario[cont]=p.getNome();
System.out.println("gravou"+cont);
System.out.println(funcionario[cont]);
}
}
//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.