Problemas com Statics, gets, sets e registro de objetos

4 respostas
bruno_bls

Olá galera, sou iniciante em java e estou tendo um problema no meu codigo

o objetivo do programa é cadastrar produtos, fornecedores e mostrar esses valores

segue...

package heranca;

import java.util.ArrayList;
import java.util.Scanner;

public class Programa extends Registro {

	// cria metodo ler
	static Scanner ler;

	// leitura de INTEIROS
	public static int lerI() {
		int read;
		read = ler.nextInt();
		return read;
	}

	// leitura de STRINGS
	// public static String lerS() {
	// String str;
	// str = ler.nextLine();
	// return str;
	// }
	
	static ArrayList<Registro> reg;

	// MAIN - - - -
	public static void main(String[] args) {
		// inicia leitura de Scanner
		ler = new Scanner(System.in);
		reg = new ArrayList<>();
		int opc;
		
	
		do {
			System.out.println();
			System.out.println("-= SCE - Sistema Controle de Estoque =-");
			System.out.println("");
			System.out.print("   1-Inserir/ Remover.  ");
			System.out.print("2-Editar.  ");
			System.out.print("3-Opçoes.   ");
			System.out.print("4-Sobre.   ");
			System.out.print("5-Sair.");
			System.out.println("");
			opc = lerI();

			switch (opc) {
			case 1:
				inserir();
				break;
			case 2:
				editar();
				break;
			case 3:
				opcoes();
				break;
			case 4:
				sobre();
				break;
			}
		} while (opc != 5);
	}

	// METODO INSERIR DADOS DE PRODUTO
	public static void inserir() {
		int opc, qtd, i = 0;
		double preco;
		String name, tipo, forn;

		System.out.println("-= SCE - Sistema Controle de Estoque =-");
		System.out.println("");
		System.out.print("  1-Inserir Novo Produto.  ");
		System.out.print("2-Inserir Produto em Estoque.  ");
		System.out.print("3-Remover Produto Estoque.");
		System.out.println("");
		opc = lerI();

		switch (opc) {
		case 1:
			ler.nextLine();
			System.out.println("Nome:");
			name = ler.nextLine();
			System.out.println("Fornecedor: ");
			forn = ler.nextLine();
			System.out.println("Preco: (EX: 29,90):");
			preco = ler.nextDouble();
			ler.nextLine();
			System.out.println("Tipo de produto: consumivel - ...");
			tipo = ler.nextLine();
			System.out.println("Quantidade (UN): ");
			qtd = lerI();
            
			//neste caso ignorem a definição da variavel reg;
            //preciso passar este valores para a classe registro e setar elas em um vetor para armazer os produtos


			reg.add(Registro.setNome(name)); // tentei em arraylist- n sei c esta certo
			reg[i].setFornecedor(forn);// tentei com vetor, mas acaba dando erro.
			reg.setPreco(preco);// tentei somente ("Registro reg = new Registro();")
			Registro.setTipo(tipo);// tentei setar diretamente para a classe
			reg[i].setQntd(qtd);
			reg[i].setId(i);
		

			i++;

			System.out.println("Dados inseridos com sucesso.");
			break;
		}
	}

	//
	public static void editar() {
		int pos;
		System.out.println("Digite a posiçao: ");
		pos = ler.nextInt();
		System.out.println("valor de nome (NAO): " + reg.getNome());
	}

	//
	public static void opcoes() {

	}

	//
	public static void sobre() {

	}

}

essa é a classe de Registro dos produtos

package heranca;

public class Registro{
	
	private int Id;
	private String Nome;
	private String Fornecedor;
	private double Preco;
	private String Tipo;
	private int Qntd;
	
	//SET's E GET's
	
      /*o problema é que não posso botar static aqui
       * mas se eu não colocar, não consigo passar os valores para cá
      */

   
	public int getId() {
		return Id;
	}
	public void setId(int id) {
		Id = id;
	}
	public String getNome() {
		return Nome;
	}
	public void setNome(String nome) {
		Nome = nome;
	}
	public String getFornecedor() {
		return Fornecedor;
	}
	public void setFornecedor(String fornecedor) {
		Fornecedor = fornecedor;
	}
	public double getPreco() {
		return Preco;
	}
	public void setPreco(double preco) {
		Preco = preco;
	}
	public String getTipo() {
		return Tipo;
	}
	public void setTipo(String tipo) {
		Tipo = tipo;
	}
	public int getQntd() {
		return Qntd;
	}
	public void setQntd(int qntd) {
		Qntd = qntd;
	}
}

eu preciso que os Set's e Get's funcionem e quero adicionar varios produtos mas nao sei como e qual a melhor maneira de fazer isto. =/

4 Respostas

jrmelo

Boa noite!

Existe uma forma para criar os modelos, seguindo as boas práticas, mas antes de partir para esse caminho, gostaria de saber algumas informações. Se você está usando algum banco de dados para persistir? Aí eu perguntaria:

Cadê a classe DAO do JDBC? Ou a do Hibernate? Para fazer a interação com o banco de dados.

L

Seu codigo não está muito legal porque você coloca quase tudo dentro da classe Programa.

Mas como você quer manter dessa maneira, vamos lá.

Declare uma atributo da classe programa sendo uma lista de Registros:
List registros = new ArrayList();

no lugar de:

//neste caso ignorem a definição da variavel reg; //preciso passar este valores para a classe registro e setar elas em um vetor para armazer os produtos

coloque:

Registro r = new Registro(); r.setName... r.setFornecedor...
etc

e depois adicione o r à lista:

registros.add(r);

Abraços

N

Primeiro de tudo, qual é o erro gerado?

bruno_bls

olá, desculpa a demora pra responder…

eu acabei mudando tanto o código que nem me lembro qual erro dava.

lsouza13 valew pela dica, funcionou, só que não consegui exibir as informações da lista =D.

jah implementei de outro modo que não vou precisar do uso de arraylist ou vetor. obrigado a todos que tentaram me ajuda…

Criado 16 de março de 2013
Ultima resposta 19 de mar. de 2013
Respostas 4
Participantes 4