Meus amigos eu to com um problema aqui,assim, dentro do meu Main tenho um switch como vcs pode ver, ai eu quero manda por parametro a variavel val, para o metodo fazReserva que esta na mesma classe. Mas eu nao estou sabendo enviar a variavel val, me ajudem ai!!! Fazendo favor…
public class Usuario {
public void fazReserva () {
}
public static void main(String args[ ]) {
case 4:
String opcao = JOptionPane.showInputDialog(" Reserva de : \n[1]--Livro \n[2]--Revista \n[3]--Cancelar Reserva");
int val = Integer.parseInt ( opcao);
PROBLEMA ---> // como passar val para o metodo fazReserva
break;
Obrigado!!!
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:
package biblioteca_gustavo;
import javax.swing.JOptionPane;
import java.util.Vector;
public class Usuario {
public static Vector <Reservas> Reservas = new Vector <Reservas>();
public static Vector <Livros> Livros = new Vector <Livros>();
public static Vector <Revista> Revista = new Vector <Revista>();
public static Vector <Usuario> Usuario = new Vector <Usuario>();
private String nome;
private String endereco;
private String telefone;
private int senha_c;
private int tel;
public static Object e;
public int val;
public void fazReserva (int val) {
this.val=val;
}
public Usuario(String nome, String endereco, int tel, int senha_c){
this.nome=nome;
this.endereco=endereco;
this.tel=tel;
this.senha_c=senha_c;
}
public String getnome(){
return nome;
}
public String getendereco(){
return endereco;
}
public String gettelefone(){
return telefone;
}
public int getsenha_c(){
return senha_c;
}
public static void main(String args[ ]) {
String opc, nome, endereco, telefone, senha, opc2, colecao, editora, opc3 ;
int resultado, senha_c, tel, resultado2,resultado3, i,emprestado,reservado;
do{
opc = JOptionPane.showInputDialog(" Gostaria de realizar \n[1]--Cadastro de usuario \n[2]--Cadastro de Material \n[3]--Emprestimo ou Devolucao \n[4]--Reservas \n[5]--Sair ");
resultado = Integer.parseInt ( opc );
switch(resultado){
case 1:
nome = JOptionPane.showInputDialog("Digite o Nome do Cliente para o cadastro:");
endereco = JOptionPane.showInputDialog("Digite seu Endereco para o cadastro com o Nº:");
telefone = JOptionPane.showInputDialog("Digite o Numero do Telefone Residencial ex:(063) 3321-3211");
senha = JOptionPane.showInputDialog("Digite a Senha que deseja cadastrar para o Cliente:");
tel = Integer.parseInt(telefone);
senha_c = Integer.parseInt(senha);
Usuario h = new Usuario( nome, endereco, tel, senha_c);
Usuario.add(h);
JOptionPane.showMessageDialog(null,"Cadastro realizado com Sucesso:");
break;
case 2:
do{
opc2 = JOptionPane.showInputDialog(" Gostaria de realizar cadastro de: \n[1]--Revistas \n[2]--Livros \n[3]--Sair ");
resultado2 = Integer.parseInt ( opc2 );
switch(resultado2){
case 1:
emprestado=0;
reservado=0;
colecao = JOptionPane.showInputDialog("Digite a Colecao da revista:");
editora = JOptionPane.showInputDialog("Digite a editora:");
Revista a = new Revista (reservado, emprestado,colecao, editora);
Revista.add(a);
JOptionPane.showMessageDialog(null,"Cadastro realizado com Sucesso:");
break;
case 2:
emprestado=0;
reservado=0;
String editora1 = JOptionPane.showInputDialog("Digite a Editora do Livro:");
String edicao = JOptionPane.showInputDialog("Digite a sua Edicao:");
String isbn = JOptionPane.showInputDialog("Digite o seu ISBN (combo)");
String autor = JOptionPane.showInputDialog("Digite o seu Autor:");
String num_artigo = JOptionPane.showInputDialog("Digite o numero de artigos existentes na revista:");
int n_edicao = Integer.parseInt(edicao);
int n_isbn = Integer.parseInt(isbn);
int num = Integer.parseInt(num_artigo);
Livros c = new Livros( reservado, emprestado, editora1, n_edicao, n_isbn, autor );
Livros.add(c);
for ( i=0; i < num; i++ ){
String autor_artigo = JOptionPane.showInputDialog("Digite a Editora do Livro:");
String tituloArtigo = JOptionPane.showInputDialog("Digite a sua Edicao:");
Artigo d = new Artigo (autor_artigo, tituloArtigo, n_isbn);
}
JOptionPane.showMessageDialog(null,"Cadastro realizado com Sucesso:");
break;
}
}while(resultado2 != 3);
break;
case 3:
do{
opc3 = JOptionPane.showInputDialog(" Emprestimo: \n[1]--Emprestimo \n[2]--Devolucao \n[3]--Sair ");
resultado3 = Integer.parseInt ( opc3 );
switch(resultado3){
case 1:
String mate = JOptionPane.showInputDialog(" Material para Emprestimo e: \n[1]--Livro \n[2]--Revista");
int nmate = Integer.parseInt ( mate);
Material f = new Material();
f.emprestar(nmate);
break;
case 2:
String op = JOptionPane.showInputDialog(" Devolucao e: \n[1]--Livro \n[2]--Revista");
int opm = Integer.parseInt ( op);
Material g = new Material();
g.devolver(opm);
break;
}
}while(resultado3 != 3);
break;
case 4:
String opcao = JOptionPane.showInputDialog(" Reserva de : \n[1]--Livro \n[2]--Revista \n[3]--Cancelar Reserva");
int val = Integer.parseInt ( opcao);
PROBLEMA AQUI -----> fazReserva(val);
break;
}
}while(resultado != 5);
}
}
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:
O problema aqui e quando eu vou passar parametro desse jeito fazReserva(val); para o metodo fazReserva da dando errado o codigo.
Eu uso o Netbeans ai eu quero um ideia!!!
Abraços
Provavelmente o erro que tá acontecendo é esse certo:
O problema é que seu método fazReserva é um método de instancia, ou seja, só pode ser acessado através de uma instancia do objeto Usuario. Porém a chamada dele vc faz de dentro do método main, que é um método estático (não precisa de instancia de Usuário para chamar)…
E ai vem o problema, não é simplesmente mudar o modificador do método, pois o método sendo estatico e não estatico há uma grande diferença na lógica…
Basicamente a pergunta que te faço é essa:
“você tem uma opção 1 chamada de cadastro de usuarios, logo seu sistema pode ter varios usuarios, depois vc tem uma opção 4 que se chama reserva, e ai te pergunto, reserva para qual usuario?! ali vc só diz o que quer reservar e não para quem… quando vc resolver esse problema (para quem reservar) vc vai resolver a chamada desse método”
ps: acho que tem erro tb na sua lógica de emprestimo e devolução, vc empresta e devolve materiais ja existentes (cadastrados no sistema) e não novos materiais como esta feito:
int nmate = Integer.parseInt ( mate);
Material f = new Material();
f.emprestar(nmate);
Na real acho que quem empresta material e devolve material é um Usuário tb… assim como ele fazReserva…
de qualquer forma, resolve primeiro o problema do seu fazReserva
Ele vai fazer reserva para o usuario, que desejar, e que estiver cadastrado exixtente no sistema, e assim nao ta pronto a parte de fazer reserva nao pq ainda to tentando passar por parametro a opcao para do case4:
para dar continuidade para meu codigo
[quote=“GustavoLemos”]Ele vai fazer reserva para o usuario, que desejar, e que estiver cadastrado exixtente no sistema, e assim nao ta pronto a parte de fazer reserva nao pq ainda to tentando passar por parametro a opcao para do case4:
para dar continuidade para meu codigo[/quote]
pqp, desisto, vc não entendeu nada que eu disse né?!, eu basicamente disse que não tem como vc arrumar esse problema que vc tem AGORA sem definir para qual usuario será feito a reserva…
vc só pode chamar fazReserva a partir de uma instancia de Usuario, o erro NÃO É DE PASSAGEM DE PARÂMETRO, e sim que vc esta tentando acessar fazReserva de forma estatica sendo que ele é um método de instancia… mas se não acreditou (o que para mim indica que vc nãao faz a minima noção do que está fazendo), então tá, faz isso, vai compilar, de forma errada, vc vai tirar 0 no trabalho, seu professor vai dizer: “nossa! que que é isso! não aprendeu nada”
String opcao = JOptionPane.showInputDialog(" Reserva de : \n[1]--Livro \n[2]--Revista \n[3]--Cancelar Reserva");
int val = Integer.parseInt ( opcao);
Usuario u = new Usuario("Eu nao presto atenção no forum", "e isto está completamente errado", 1, 2);
u.fazReserva(val);