Ajuda em Cadastro com vetor

4 respostas
VictorDuke

Bom dia galera, to fazendo um trabalho pra facul onde tenho q realizar um cadastro e depois visualizá-lo, através de um menuzinho.Consegui fazer tudo e ficou simples (não sei se está bom mas funcionou como eu queria).Porém não estou conseguindo implementar um vetor pra cadastrar mais de um item. Gostaria que me ajudassem por favor.
Segue o código fonte:
Classe Principal

public class Fabrica {

	public static void main(String args[]) {
		Freio f1 = new Freio();
		Scanner ler = new Scanner(System.in);
		int opcao = 0;
		do {
			System.out.println("\n\n***********Empresa Fulano***********");
			System.out.println("**************************************");
			System.out.println("* 1 - Cadastrar ");
			System.out.println("* 2 - Visualizar ");
			System.out.println("* 9 - Sair do Programa");
			System.out.println("**************************************");
			System.out.print("Digite a opção desejada: ");
			opcao = ler.nextInt();
			switch (opcao) {
			case 1:
				f1.cadastra();
				break;
			case 2:
				f1.visualiza();
				break;
			case 9:
				break;
			default:
				System.out.println("Opcao invalida");
				break;
			}

		} while (opcao != 9);

		System.out.println("Programa encerrado");

	}
}

Classe Freio

import java.util.Scanner;

public class Freio {
	private String modelo;

	private String lote;

	private String dataFab;

	// método setModelo
	public void setModelo(String mod) {
		modelo = mod;
	}

	// método getModelo
	public String getModelo() {
		return modelo;
	}

	// método de cadastro de Freios
	public void cadastra() {
		Scanner ler = new Scanner(System.in);
		System.out.println("Digite o modelo do disco de freio:");
		modelo = ler.nextLine();
		System.out.println("Digite o lote do disco de freio:");
		lote = ler.nextLine();
		System.out.println("Digite a data de fabricação do disco de freio:");
		dataFab = ler.nextLine();
	}

	// método para visualização do cadastro
	public void visualiza() {
		System.out.printf("\nModelo do freio: %s", modelo);
		System.out.printf("\nLote do freio: %s", lote);
		System.out.printf("\nData de fabricação: %s", dataFab);

	}

	// método setLote
	public void setLote(String lot) {
		lote = lot;
	}

	// método getLote
	public String getLote() {
		return (lote);
	}

	// método setDataFab
	public void setDataFab(String data) {
		dataFab = data;
	}

	// metodo getDataFab
	public String getDataFab() {
		return (dataFab);
	}

}

Quem puder dar uma força aí eu agradeço.
Valeoo

4 Respostas

foxpv

Cara na sua classe main, é so fazer um vetor de objetos do tipo Freio e a cada vez que você cadastrar um vc insere no vetor tipo:

Freio freios[] = new Freio[5];
Freio newFreio = new Freio();
newFreio.cadastra();
freios[0] = newFreio;

soh vc adaptar isso para o seu codigo, espero ter ajudado.

eduardohitek

O ideal seria você pegar esses dados do Usuário na sua classe Main para deixar o código mais organizado, por que não é boa prática deixar os seus objetos ficarem se comunicando com o usuário.
Outra boa ideia seria você perguntar para o Usuário quantos objetos ele quer cadastrar:

Freio freioArray[];

System.out.println("Quantos Objetos deseja Cadastrar?");
int qtd = s.nextInt();
freioArray = new Freio[qtd];
foxpv

boas dicas do eduardo!
faz os setters e getters para seus atributos na sua classe Freio que vc vai deixar seu código mais transparente além de ser um boa prática!

VictorDuke

Valeu galera
Vou tentar aqui qualquer dúvida eu volto a postar.

Criado 22 de agosto de 2007
Ultima resposta 22 de ago. de 2007
Respostas 4
Participantes 3