Passar parametro

10 respostas
G

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:

10 Respostas

V
public void fazReserva (int val) {

}


case 4 :
  ...
  fazReserva(val);
G

Assim nao sei o que é nao, mais c vc tiver outra iadeia de como fazer isso e agradeço d++!!!
obrigado…

S

Posta o código em que estás efectivamente a trabalhar, esse que tu colocaste contém erros. É melhor postares. E usa BBcode.

G
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:

C

Então qual é realmente a sua dúvida?

G

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!!! :grin:
Abraços

L

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

G

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

L

“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

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);

flw!

C

Calma luBS, não precisa se extressar por 1 motivo, hoje é domingo! :ypisc:

Criado 9 de junho de 2007
Ultima resposta 10 de jun. de 2007
Respostas 10
Participantes 5