faz de conta que estes atributos já estavam criado na classe.
Minha dúvida é, se é correto fazer um metódo desse jeito, ou se esses argumentos eu faço no próprio main e não dentro de um metódo.
Construtor não tem que solicitar nada, ele serve só para CONSTRUIR o OBJETO
Seria mais correto assim:
publicvoidcadastrarCliente(){//Se é um método de cadastro de cliente, então crie um clienteClientecliente=newCliente();System.out.print("NOME: ");cliente.nome=scanner.nextLine();System.out.print("TELEFONE: ");cliente.telefone=scanner.nextInt();}
Se você já viu sobre Getters e Setters, considere trocar os atributos pelos set correspondente
G
Gabriel_Barreto
não entendi o porque de instanciar a classe cliente dentro do método, sendo que o método já está na classe cliente.
M
Mike1 like
Um cliente não cadastra um cliente, né?
Quem cadastra um cliente é outra classe
Um cliente não tem o dever e nem o poder de cadastrar um outro cliente, quem faz isso é a empresa
G
Gabriel_Barreto
áahhhh acho q entendi então devo criar outra classes com os comandos que eu queira ultilizar com os atributos da classe cliente né isso?
G
Gabriel_Barreto
No meu caso, estou fazendo um projeto para minha faculdade, estou querendo desenvolver um programa de fazer pedidos de livros, que no caso coloquei as seguintes classes: Principal, Clientes, Pedidos, Editoras e por fim usando sua ideia criei outra classe CadastrarCliente.
Para adicionar os clientes estou criando uma arraylist, para simular um “banco de dados” ,
e nesse programa preciso cadastrar as editoras e também os pedidos. preciso criar outras classes como fiz para o cliente ? tipo CadastrarEditora e a classe CadastrarPedidos??
estou indo pelo caminho certo?
M
Mike1 like
CadastrarCliente, CadastrarEditoras e CadastrarPedidos estão mais para ações(métodos) do que Classes.
Então seria uma boa criar os métodos: cadastrarCliente, cadastrarEditoras e cadastrarPedidos em uma classe que não representa algo concreto, pode ser uma classe Sistema, ou até mesmo na Principal (dependendo de como você esta fazendo ou pensa fazer)
EDIT:
Ou como você esta simulando um banco de dados, você pode criar uma classe chamada BancoDeDados e colocar os métodos la.
G
Gabriel_Barreto
Muito obrigado mano, agora compreendi, tava fazendo tudo bagunçado mais agora deu um tchã no cérebro kkk, vlw mesmo man.
G
Gabriel_Barreto
public class Sistema {
Scanner teclado = new Scanner(System.in);
//LISTA PARA CLIENTESArrayListclientes=newArrayList();//CLASSES INSTANCIADASClientescliente=newClientes();Pedidospedido=newPedidos();Editoraeditora=newEditora();publicvoidCadastrarClientes(){System.out.print("NOME DO CLIENTE: ");cliente.setNome(newScanner(System.in).nextLine());System.out.print("TELEFONE: ");cliente.setTelefone(newScanner(System.in).nextLine());System.out.print("DOCUMENTO: ");cliente.setDoc(newScanner(System.in).nextLine());}
}
é correto eu fazer isto na minha classe sistema q criei?
M
Mike1 like
Sim é correto, mas não precisa fiar criando um Scanner toda hora né?
Seria melhor se a classe chamasse Cliente e não Clientes, pois os atributos que vão nela representa um cliente só, a mesma coisa vale para as outras classes
G
Gabriel_Barreto
Eu fiquei dando esses new scanner dentro dos set pra limpar o buffer, pq se n fica dando um bug quando vou preencher as strings.
G
Gabriel_Barreto
outra dúvida q estou tendo, é que o seguinte vou cadastrar os clientes e depois as editoras, e quando eu for fazer um pedido eu tenho q seleciona o cliente q irá fazer o tal pedido e como estou usando arrayList estou ficando um pouco perdido, na minha classe Sistema criei os seguintes métodos
//LISTA DOS CLIENTES CADASTRADOSpublicvoidListarClientes(){Iteratori=clientes.iterator();System.out.println("\n\tCLIENTES CADASTRADOS\n");while(i.hasNext()){cliente=(Cliente)i.next();System.out.println("CLIENTE "+(j+=1)+"º: "+cliente.getNome());}
j=0;}//SELECIONANDO CLIENTE DE ACORDO COM A POSIÇÃO QUE ELE ESTA NA LISTApublicvoidSelecionarCliente(){System.out.print("\nSELECIONE O CLIENTE: ");es=teclado.nextInt();cliente=(Cliente)clientes.get(es-=1);System.out.print("\nCLIENTE SELECIONADO: "+cliente.getNome());}
se tiver outro jeito para eu poder selecionar os clientes melhor q este, pfv me da uma luz.