Estou com problemas com array!

ta ai o meu codigo!!


import java.lang.String;

public class Banco{
	
	public static Object[] pessoas;
	private static int indice = -1;


	public static String insereDado(Object dadospessoais){
		
		if(Banco.indice<0){
			pessoas=new Object[4];
		}
		if(Banco.indice<(Banco.pessoas.length-1)){
			Banco.indice ++;
			Banco.pessoas[Banco.indice]=dadospessoais;
			return "\n\t\t\t\t O NOME FOI INSERIDO COM SUCESSO!";	
			//RETURN ele para a execução e volta
		

		}


		else{

			return "\n\t\t\t\t ATENCAO O NOME NAO FOI CADASTRADO, POIS O BANCO ESTA CHEIO!";

		}
	}//FECHA O METODO INSEREDADO	

	 
	public static void mostra(){
		System.out.println(Banco.indice);

		if(Banco.indice < 0){
			System.out.printf("\n\t\t\t\t%s","BANCO VAZIO!");
		}
		else{
			int i=0;
			while(i <= Banco.indice){

				System.out.printf(Banco.pessoas[i].toString());
				i++;

			}//fecha o while
		}
	}//FECHA O METODO MOSTRA



				public static String retiraDado(String nome){
					if(Banco.indice<0){
						return "\n\t\t\t\t O VETOR ESTA VAZIO!";
					}
					else{
						int i=0;
						while(i<Banco.indice){
							DadosPessoais x = (DadosPessoais)Banco.pessoas[i];
							if(nome.equals(x.getNome())){
								break;
							}
							else{
								i++;
							}
						}
						if(i>Banco.indice){
							return"\n\t\t\t\t NAO HA ESSE NOME NO VETOR";
						}
						else if(i==Banco.indice){
							Banco.pessoas[i]=null;
						}
						else{
							while(i<Banco.indice){
								Banco.pessoas[i]=Banco.pessoas[i+1];
							i++;	
							}
						}
						Banco.indice--;
						return "\n\t\t\t\t O NOME FOI RETIRADO COM SUCESSO!";
					}//fexa o 1 else
				}//fecha o metodo RETIRADADO

}//fecha a classe

o array inicia com zero e não com 4!!
poderiam me ajudar??

Vlw

Não que o array inicie com zero, ele nem é inicializado. Na sua função main, a condição do if é sempre verdadeira, afinal, vc inicializa o indíce com -1 que é menor que zero. Assim, o código do else nunca é executado. Tenta retirar o else pra ver o que acontece.
Mas só uma coisa, vc criou todos os métodos estáticos, e isso não é comum de ser feito para o caso que vc colocou. Você deveria criar os métodos e atributos como não estático e dentro da classe main uma instância da classe banco no método main. Se vc não tiver idéia do que estou falando, recomendo estudar mais os conceitos de Java. Agora se vc simplesmente quis usar o modificador static pra ver como funciona, então esteja a vontade…

vixi, acho que foi a madrugada, li main em vez de mostra. esquece o que falei. Mas cade a classe que executa esses métodos?

Acho que nem precisa saber a classe que executa…

Ve se é isso que voce quer saber:

[code]
public static Object[] pessoas;
private static int indice = -1;

if(Banco.indice<0){
pessoas=new Object[4];[/code]

Se voce quer saber porque o array pessoas começa com 0 e nao com 4 a resposta é:
Porque todo array, o primeiro indice é começado com 0.

Se nao for isso, coloca sua duvida ai e explique-se melhor…

Abraços

é o seguinte!!
o meu problema é q o array não fica com as 4 posição, mas fica só com uma!!
dai eu faço o cadastro de uma pessoa e mando visualizar, e qnd eu cadastro outra pessoa e mando visualizar ele mostra duas pessoas mas as mesmas!!
tipo:
eu cadasttro a pessoa “q” e depois ela mostra “q”, mas qnd eu cadastro a pessoa “w” ela mostra
assim: | deveria:
|
“w” | “q”
“w” | “w”

entendeu agora??
poderia me ajudar??

Blackfalcon

Essa parte do código está certa. Ele usa o índice como o número de pessoas que o banco tem. Inicializa esse valor com -1 para como uma flag pra dizer que ainda nao tem ninguem cadastrado. Entao inicializa o vetor quando o valor é -1. Por isso acho que só vendo o código que executa o programa. Por isso peço que poste o codigo que executa, se não vai ficar dificil…

import java.util.Scanner;
public class Informatica{
	public static void main(String [ ] args){
	Scanner input1 = new Scanner(System.in);
	Scanner input= new Scanner(System.in);
	int escolha=0;


		while(escolha != 4){

			System.out.printf("\n\n\n\t\t\t\t%s","DIGITE A OPCAO QUE CORRESPONDE AO SEU CARGO");
			System.out.printf("\n\t\t\t\t%s","1............DIRETOR");
			System.out.printf("\n\t\t\t\t%s","2............GERENTE");
			System.out.printf("\n\t\t\t\t%s","3............TECNICO");
			System.out.printf("\n\t\t\t\t%s\n\n\t\t\t\t","4............SAIR");
			escolha=input.nextInt();
		
			if(escolha == 1){
				FormularioDiretor formulario=new FormularioDiretor();
				Diretor diretor=new Diretor();
				int escolha1=0;

				while(escolha1 != 3){
					System.out.printf("\n\n\n\t\t\t\t%s","DIGITE A OPCAO DESEJADA");
					System.out.printf("\n\t\t\t\t%s","1............CADASTRAR");
					System.out.printf("\n\t\t\t\t%s","2............VISUALIZAR");
					System.out.printf("\n\t\t\t\t%s\n\n\t\t\t\t","3............VOLTAR");
					escolha1=input1.nextInt();
				
					if(escolha1 == 1){

							formulario.cadastro();
							System.out.printf(Banco.insereDado(formulario));
					}
			
					else if(escolha1 == 2){
						
							Banco.mostra();
					}
					
					else if(escolha1 == 3){
						System.out.printf("\n\t\t\t\t%s","Please waiting...");
					}
				
					else{
						System.out.printf("\n\t\t\t\t%s","COMANDO INVALIDO");
					}
				}
			}
	
			else if(escolha == 2){
				FormularioGerente formulario=new FormularioGerente();
				Gerente gerente=new Gerente();
				int escolha1=0;
				while(escolha1 != 3){
					System.out.printf("\n\n\n\t\t\t\t%s","DIGITE A OPCAO DESEJADA");
					System.out.printf("\n\t\t\t\t%s","1............CADASTRAR");
					System.out.printf("\n\t\t\t\t%s","2............VISUALIZAR");
					System.out.printf("\n\t\t\t\t%s\n\n\t\t\t\t","3............VOLTAR");
					escolha1=input1.nextInt();
				
					if(escolha1 == 1){
						formulario.cadastro();	
						gerente.setFormulario(formulario);
					}
			
					else if(escolha1 == 2){
						System.out.printf("%s",gerente.getFormulario());
					}
					
					else if(escolha1 == 3){
						System.out.printf("\n\t\t\t\t%s","Please waiting...");
					}
				
					else{
						System.out.printf("\n\t\t\t\t%s","COMANDO INVALIDO");
					}
				}
			}
	
			else if(escolha == 3){
				FormularioTecnico formulario=new FormularioTecnico();
				Tecnico tecnico=new Tecnico();
				int escolha1=0;
				while(escolha1 != 3){
					System.out.printf("\n\n\n\t\t\t\t%s","DIGITE A OPCAO DESEJADA");
					System.out.printf("\n\t\t\t\t%s","1............CADASTRAR");
					System.out.printf("\n\t\t\t\t%s","2............VISUALIZAR");
					System.out.printf("\n\t\t\t\t%s\n\n\t\t\t\t","3............VOLTAR");
					escolha1=input1.nextInt();
				
					if(escolha1 == 1){
						formulario.cadastro();	
						tecnico.setFormulario(formulario);	
					}
			
					else if(escolha1 == 2){
						System.out.printf("%s",tecnico.getFormulario());
					}
					
					else if(escolha1 == 3){
						System.out.printf("\n\t\t\t\t%s","Please waiting...");
					}
				
					else{
						System.out.printf("\n\t\t\t\t%s","COMANDO INVALIDO");
					}
				}
			}

			else if(escolha == 4){
				System.out.printf("\n\t\t\t\t%s\n\n","BYE");
			}

			else{
				System.out.printf("\n\t\t\t\t%s\n\n","COMANDO INVALIDO");
			}
		}
	}
}

só tem uma coisa!!
os else if 2(gerente) e 3(tecnico) naum estão configurados para usar o banco!!
então eh só o do diretor q esta configurado pra uzar o bando!!
qnd consiguir arrumar isso eu confguru os outros.
muito obrigado!!