Duvidas com Array

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.

Assim ó …

Funcionario p = new Funcionario();
int cont = 10;
funcionario = new Funcionario[cont];

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.

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?

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 ???

Cara, não consegui testar mas tenta isso:

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]);
	}
}

}[/code]

manda a outra classe.

[code]import javax.swing.;
import java.io.
;

public class Funcionario{

/*#########################################################################################
#                                                                                         #
#       Variáveis                                                                         #
#                                                                                         #
#########################################################################################*/

private String nome="";
private String depto="";
private double salario=0;
private String admissao="";
private String rg="";
private boolean status;
private String statusadm="";

/*#########################################################################################
#                                                                                         #
#       Metodos set                                                                       #
#                                                                                         #
#########################################################################################*/

public void setNome(){
	nome = JOptionPane.showInputDialog(null,"Digite o nome do funcionário","Info Funcionário",JOptionPane.PLAIN_MESSAGE);
	this.nome = nome;
}
/*#########################################################################################
#                                                                                         #
#       Metodos get                                                                       #
#                                                                                         #
#########################################################################################*/

public String getNome(){
	return(this.nome);
}
/*#########################################################################################
#                                                                                         #
#       Metodos                                                                           #
#                                                                                         #
#########################################################################################*/

public void Bonifica(){
	int rec = (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));
	}
}

public void Demite(){
	int rec = 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;
	}
}

public void ImprimeInfo(){
	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);
}

}[/code]

Olha só…

voce pode criar o vetor com Object:

public Object [] vet = new Funcionario2[cont];

ou de String:

public String [] vet = new Funcionario2[cont];

seria o mais fácil a se fazer.

Não sei se há outra maneira.

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.