Duvidas, Criação de metodos

bom dia, estou inciando orientação em objeto, e queria pro exemplo criar um metodo que popule uma matriz,
na classe principal eu chamo esse metodo e o usuario informa o valor para a matriz, mas essa logica que eu fiz
esse metodo vai preencher a matriz toda com um unico numero, como posso fazer ? coloco um JOptionPane.showInputDialog() ai dentro do metodo ? desde ja obrigado…

private static int Matriz [][]=new int [5][3];

   public static void pegaValorAlimentaMatriz(int numero){
        for(int linha=0;linha<(exer01.Matriz.length);linha++){
            for(int coluna=0;coluna<(exer01.Matriz[linha].length);coluna++){
                exer01.Matriz[linha][coluna]=numero;  //popula a matriz
          }//coluna
        }//linha
    }//metodo

Você só esta inserindo um valor para a matriz, no caso é o parâmetro que esse método recebe, evite fazer métodos estáticos (Sem duvidas é o mais chatinho de entender em OO) … na caelum existe uma excelente apostila sobre OO Java!

certo, mas como posso fazer para ele receber em cada possição da matriz um valor diferente, ?

Você é um programador, você pode fazer qualquer coisa … quais valores você gostaria de colocar ?

os valores que o usuario informase na classe principal, como posso fazer ?

Deixe-me entender tudo bonitinho…

Você esta usando JFrame ou Console nessa aplicação ?

(Veja o livro da Caelum, lá tem tudo explicadinho desde a base … mesmo que você consiga resolver isso, voce não vai estar programando OO, estudo o Conceito e a Aplicação das coisas ante de sair codando, acho mais fácil você usar, se souber o porque é usado! )

usando uma classe main

import javax.swing.JOptionPane;

public class Principal {
  public static void main(String[] args) {
        
    String aux;  
      
    aux= JOptionPane.showInputDialog("informe  o numero para a matriz");
    int tamanholinhda =Integer.parseInt(aux);
    
   aux= JOptionPane.showInputDialog("informe  a quantidade de colunas");
   int tamanhocoluna=Integer.parseInt(aux);
    
    exer02.informarTamanhoMatriz(tamanholinhda, tamanhocoluna);
     
    aux= JOptionPane.showInputDialog("informe  o numero para a matriz");
    int numeromatriz =Integer.parseInt(aux);
    
    exer02.populaMatrizA(numeromatriz);
    
    System.err.println(""+exer02.exibeMatrizA());
  
  
  }
    
}

Toda aplicação java tem uma classe main, seja ela pelo terminal ou por GUI … no exemplo que você postou ai, nem foi chamado metodo que esta te confundindo …

Você esta passando um Int para uma metodo String, não vou conseguir te ajudar … você precisa de um pouco mais de conteudo … http://www.caelum.com.br/curso-java-orientacao-objetos/

ok, eu chamo o metado na classe principal, o metado está em baixo


import javax.swing.JOptionPane;

public class Principal {
  public static void main(String[] args) {
        
    String aux;  
      
    aux= JOptionPane.showInputDialog("informe  o numero para a matriz");
    int tamanholinhda =Integer.parseInt(aux);
    
   aux= JOptionPane.showInputDialog("informe  a quantidade de colunas");
   int tamanhocoluna=Integer.parseInt(aux);
    
    exer02.informarTamanhoMatriz(tamanholinhda, tamanhocoluna);
     
    aux= JOptionPane.showInputDialog("informe  o numero para a matriz");
    int numeromatriz =Integer.parseInt(aux);
    
    exer02.populaMatrizA(numeromatriz);
    
    System.err.println(""+exer02.exibeMatrizA());
  
  
  }
    
}
//---------------------------------------------------------------------------------
 private static int tamanhoMatrizLinha=0;
    private static int tamanhoMatrizColuna=0;
    private static int matrizA[][]=new int [tamanhoMatrizLinha][tamanhoMatrizColuna];
    private static int matrizB[][]=new int[tamanhoMatrizLinha][tamanhoMatrizColuna];

    public static void populaMatrizA(int numeroMatriz){
       for(int i=0;i<tamanhoMatrizLinha;i++){
           for(int c=0;c<tamanhoMatrizColuna;c++){
               matrizA[i][c]=numeroMatriz;
           }
       }       
    }   
public static void populaMatrizA(int numeroMatriz){
       for(int i=0;i<tamanhoMatrizLinha;i++){
           for(int c=0;c<tamanhoMatrizColuna;c++){
               matrizA[i][c]=numeroMatriz;
           }
       }       
    } 

Você quer pegar o array que foi preenchido ?

seguinte, eu tenho a classe principal que o usuario informa o tamanho da matriz, e chama o metodo, em seguida o usuario fala os valores que ele quer na matriz, e é passado por meio de matado, o que está acontecendo ai, no metodo populamatrizA é que ele ta guardando um unico valor para a matriz toda, como posso para ele guardar um valor diferente, ou seja tem que ser solicitado novamente um numero para ele, para colocar na segunda possição da matriz… entendeu ? (:
brigadão cara…

O problema é na logica do seu método, voce só esta dando um valor para ele e inserindo em tudo, você não pode fazer um

for(int i=0;i<tamanhoMatrizLinha;i++){ for(int c=0;c<tamanhoMatrizColuna;c++){ matrizA[i][c]=numeroMatriz; } }

Você teria que que inserir em cada posição de uma vez …

Foi você que escreveu esse código?

sim fui eu, esse código seu, vai fazer a mesma coisa certo ? se for no metodo esse código ?

[quote=dioni deivid dors]seguinte, eu tenho a classe principal que o usuario informa o tamanho da matriz, e chama o metodo, em seguida o usuario fala os valores que ele quer na matriz, e é passado por meio de matado, o que está acontecendo ai, no metodo populamatrizA é que ele ta guardando um unico valor para a matriz toda, como posso para ele guardar um valor diferente, ou seja tem que ser solicitado novamente um numero para ele, para colocar na segunda possição da matriz… entendeu ? (:
brigadão cara…[/quote]

Ele está colocando o mesmo valor para todas as posições porque você passa um valor para o método e o método percorre toda a matriz e coloca o valor que você passou em cada uma das posições.

Uma das formas de fazer o que você quer seria algo como:

[code]
void seuMetodo(int i, int j, int valor) {
matriz[i][j] = valor;
}

for(int i=0;i<(matriz.length);i++){  
            for(int j=0;j<(j[i].length);j++){  
                 aux = JOptionPane.showInputDialog("Informe o valor para a matriz: ");  
                 int valor = Integer.parseInt(aux);
                 seuMetodo(linha, coluna, valor); 
          }//coluna  
        }//linha  

esse :


for(int i=0;i<(matriz.length);i++){    
            for(int j=0;j<(j[i].length);j++){    
                 aux = JOptionPane.showInputDialog("Informe o valor para a matriz: ");    
                 int valor = Integer.parseInt(aux);  
                 seuMetodo(linha, coluna, valor);   
          }//coluna    
        }//linha 

vai na classe principal ?

[quote=dioni deivid dors]esse :


for(int i=0;i<(matriz.length);i++){    
            for(int j=0;j<(j[i].length);j++){    
                 aux = JOptionPane.showInputDialog("Informe o valor para a matriz: ");    
                 int valor = Integer.parseInt(aux);  
                 seuMetodo(i, j, valor);   
          }//coluna    
        }//linha 

vai na classe principal ? [/quote]

Apesar de dar a resposta assim não ser legal…sim vai.

Tente entender a logica por traz disso.

Obs: Na chamada do metodo seuMetodo mude os valores de linha e coluna para i e j respectivamente.

certo, entendi, eu tenho a logica de programação sei fazer mt coisa, mas estou fazendo as coisas por metodos faz 1 semana, desde ja orbgidao ne D

Ele provavelmente escreveu o código sem entender muito bem como funciona, eu também tentei aprender assim, mas é muito mais difícil … O tempo que eu perdia empacando em probleminhas eu li o ‘Use a cabeça’ e ele abriu um pouco mais minha cabeça … Recomendo fortemente tanto ele quando as apostilas que eu citei agora a pouco …

(100 paginas você pode ler em algumas horas e sem duvidas vai te ajudar bastante …)

[quote=minibixo][quote=Sem_Nome]
Ele está colocando o mesmo valor para todas as posições porque você passa um valor para o método e o método percorre toda a matriz e coloca o valor que você passou em cada uma das posições.
[/quote]

Ele provavelmente escreveu o código sem entender muito bem como funciona, eu também tentei aprender assim, mas é muito mais difícil … O tempo que eu perdia empacando em probleminhas eu li o ‘Use a cabeça’ e ele abriu um pouco mais minha cabeça … Recomendo fortemente tanto ele quando as apostilas que eu citei agora a pouco …[/quote]

Bem provável mesmo. Ele deveria ler a apostila da Caelum (foi lá que eu aprendi).