Ajuda com Vetor

Gente não consigo colocar o vetor fora dos void no codigo abaixo, eu queria colocar o vetor fora dos void usa-lo em duas class diferentes:

[code]import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.;
import java.io.
;
class Funcionario
{
double salario;
String RG,esta1,nome,depto,qtd,ano,per;
boolean esta;
Calendar calendar = new GregorianCalendar();
int temp,anoent,year = calendar.get(Calendar.YEAR),qtd1;
void cadastra()
{
qtd = (JOptionPane.showInputDialog(null,“Digite quantos Funcionários deseja Cadastrar:”,“Novo Cadastro”,1));
qtd1 = Integer.parseInt(qtd);
int vetor[]= new int[qtd1];
for(int i=0;i<vetor.length;i++){
nome = JOptionPane.showInputDialog(null,"Digite o nome do funcionário: ",“Novo Cadastro”,1);
salario = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o salario: ",“Novo Cadastro”,1));
ano = “s”;
while(ano==“s”)
{
anoent = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de entrada do funcionário: ",“Novo Cadastro”,1));
if(anoent > year)
{
JOptionPane.showMessageDialog(null,“Ano incorreto”,“ERRO”,1);
}
else
{
ano = “n”;
}
}
}
}

void bonifica()
{
    temp = year - anoent;
    per = JOptionPane.showInputDialog(null,"Funcionario Continua trabalhando na Empresa? ","PERGUNTA!!!",2);
    if(per == "sim")
    {
        esta1 = "SIM";
        if(temp >= 2 && temp < 5){
            salario = salario + salario * 0.5;
        }
    }
    else
    {
        if(per == "nao")
        {
            esta = false;
            if(esta == false)
            {
                esta1 = "NÃO";
            }
        }
    }
}


void mostra()
{   
    int vetor[]= new int[qtd1];
    for(int i=0;i<vetor.length;i++)
    {
        JOptionPane.showMessageDialog(null,"Nome: "+nome+"\n"+"Ano de Entrada: "+anoent+"\n"+"Salario: "+salario+"\n"+"Esta na empresa: "+esta1,"Dados dos Funcionários",3);
    }
}

}[/code]

Só da se eu colocar o vetor em cada void , mais só que a informação que está no primeiro vetor não vai pro outro e vice e versa

olá,

estou com algumas dúvidas sobre seu código…mas vou falar o que observei…

no método cadastra, qdo vc quer cadastrar vários funcionários e não cria um array de funcionários, a cada loop vc estará sobrepondo o funcionário cadastrado anteriomente…

dessa forma quando vc quiser exibir todos funcionários cadastrados, como no método cadastra terá somente o último funcionário cadastrado.

talvez seria interessante vc criar a classe Funcionário e depois a classe ListadeFuncionários ou Empresa, guardaria um array ou lista mesmo de Funcionários.

aí sim, ter um método cadastra que poderia guardar todos os Funcionários que deseja cadastrar.

se a dúvida é como manter um arrays durante a passagem de agumentos/parâmetros o codigo abaixo dá um exemplo…

[code]public class TestaArrayDeFuncionarios {

public static void main(String args[]){
    
    Funcionario f1 = new Funcionario();
    Funcionario f2 = new Funcionario();
    Funcionario f3 = new Funcionario();
        
    Funcionario [] arrayDeFuncionarios = {f1, f2, f3};

    exibeVetor(arrayDeFuncionarios);
        
}

private static void exibeVetor(Funcionario[] arrayDeFuncionarios) {
    
    for (Funcionario funcionario : arrayDeFuncionarios)
        System.out.println(funcionario.toString());
}

}
[/code]

[]'s

cara eu mudei um pouco o codigo , mais mesmo assim não consegui entender o negocio do vetor, ai o codigo novo:

import java.io.*; import java.util.*; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import javax.swing.*; class Funcionario { double salario; String RG,esta1,nome,depto,ano; boolean esta; Calendar calendar = new GregorianCalendar(); int temp,anoent,year = calendar.get(Calendar.YEAR),qtd,per,per2,per3,com=1,anocont,aume=5; void cadastra() { per = JOptionPane.showConfirmDialog(null,"Deseja Abrir o Sistema de Cadastros?","SISTEMA DE CADASTRO | PERGUNTA!!!",JOptionPane.YES_NO_OPTION); if(per == 0) { while(com == 1) { qtd = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantos Funcionários deseja Cadastrar:","SISTEMA DE CADASTRO",3)); if(qtd == 0) { JOptionPane.showMessageDialog(null,"Digite valores maiores que 0","SISTEMA DE CADASTRO | ERRO",0); com = 1; } else { if(qtd >= 1) { com = 0; } } } int vetor[]= new int[qtd]; esta1 = "SIM"; for(int i=0;i<vetor.length;i++){ nome = JOptionPane.showInputDialog(null,"Digite o nome do funcionário: ","SISTEMA DE CADASTRO",3); salario = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite o salario: ","SISTEMA DE CADASTRO",3)); ano = "s"; while(ano=="s") { anoent = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de entrada do funcionário: ","SISTEMA DE CADASTRO",3)); if(anoent > year) { JOptionPane.showMessageDialog(null,"Ano maior que atual "+"\n"+"Digite o ano correto!!!","SISTEMA DE CADASTRO | ERRO",0); } else { ano = "n"; } } if(anoent <= 1990) { anocont = year - 1990; per3 = JOptionPane.showConfirmDialog(null,"Funcionário Com mais de : "+anocont+" Anos de Empresa"+"\n"+"Deseja Atribuir 20%? ","SISTEMA DE CADASTRO | AVISO",JOptionPane.OK_CANCEL_OPTION); if(per3 == 0) { aume = 20; } else { if(per3 == -1) { } } } else { } } temp = year - anoent; if(temp >= 2 && temp < 5) { salario = salario + salario * aume/100; } per2 = JOptionPane.showConfirmDialog(null,"Deseja ver os funcionários cadastrados?","SISTEMA DE CADASTRO | PERGUNTA!!!",JOptionPane.YES_NO_OPTION); if(per2 == 0) { for(int i=0;i<vetor.length;i++) { JOptionPane.showMessageDialog(null,"Nome: "+nome+"\n"+"Ano de Entrada: "+anoent+"\n"+"Salario: "+salario+"\n"+"Esta na empresa: "+esta1,"SISTEMA DE CADASTRO | Dados dos Funcionários",1); } } else { JOptionPane.showMessageDialog(null,"Até Mais","SISTEMA DE CADASTRO",1); } } else { if(per == -1) { esta = false; JOptionPane.showMessageDialog(null,"Até Mais","SISTEMA DE CADASTRO",1); if(esta == false) { esta1 = "NÃO"; } } } } }