Programa que realiza Operações matriciais!

Dado estes trechos de código, como fazer para que quando for invocado o método somar(), o programa solicite as dimensões das matrizes apenas uma vez, ou seja," Digite o número de linhas das matrizes "…“Digite o número de colunas das matrizes

Classe Matriz

import java.util.Scanner;

public class Matriz {
	private double mat[][];
	private int m;
	private int n;
				
	public Matriz (int l, int c){
		m = l;
		n = c;
		mat = new double [m][n];
	}
	
	public int getM() {
		return m;
	}

	public void setM(int m) {
		this.m = m;
	}

	public int getN() {
		return n;
	}

	public void setN(int n) {
		this.n = n;
	}

	public static Matriz lerMatriz(int m, int n) {   
	    Matriz matriz = new Matriz(m, n);   
	    matriz.lerMatriz();   
	    return matriz;   
	}  
	
	public void lerMatriz(){
		Scanner input = new Scanner(System.in);
		
		for (int i = 0; i < m; i++) {   
            for (int j = 0; j < n; j++) {   
                System.out.println("Digite o elemento da linha [" + (i + 1) + "] da coluna [" + (j + 1) + "]: ");   
                mat[i][j] = input.nextInt();   
                System.out.println("");   
            }   
        }  
	}
		
	public void exibirMatriz(){
			
		for (int i = 0; i < m; i++) {   
	           for (int j = 0; j < n; j++) {   
	            System.out.print(mat[i][j] + "   ");   
	            }   
	            System.out.println("\n");   
	        }   
		}
	
	public Matriz somar(Matriz matrizParaSomar){   
		
		Matriz novaMatriz = new Matriz(m, n);
		for (int i = 0; i < m; i++) {   
	           for (int j = 0; j < n; j++) { 
	
	        novaMatriz.mat[i][j] = this.mat[i][j] + matrizParaSomar.mat[i][j]; 
	
	        }
		}
		
		return novaMatriz;
	}
	
/*	public void somarEAtribuir(){
		

			
	}
	
	public Matriz subtrair(){
		
		
		
	}
	
	public void subtrairEAtribuir(){
		
	
		
	}
	
	public Matriz multiplicar(){
		
	
		
	}
	
	public void copiar(){
		
	
		
	}
	
	public Matriz obterTransposta(){
		
	
		
	}
	
	*/
}

Classe Main

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		int m;
		int n;
		int x;
		
		Scanner input = new Scanner(System.in);
						
		System.out.println("Informe a operação que será realizada\n\n1 - soma de 2 matrizes\n2 - subtração de 2 matrizes\n3 - multiplicação de 2 matrizes\n4 - determina a tranposta de 1 matriz\n5 - sair\n\n");
		x = input.nextInt();
		
		if (x == 5){   
            System.exit(0);   
        } else if (x == 4){       
            transposta();   
        } else if (x == 1) {   
            soma();   
        } else if (x == 2) {   
            subtracao();   
        } else if (x == 3) {   
            multiplicacao();   
        }   
    }   
  
    private static void soma() {
    	Matriz matriz = lerMatrizDoUsuario(1);   
        Matriz matrizParaSomar = Matriz.lerMatriz(matriz.getM(), matriz.getN());   
        Matriz resposta = matriz.somar(matrizParaSomar);   
        resposta.exibirMatriz();   
    }   
  
    private static void subtracao() {   
           
    }   
  
    private static void multiplicacao() {   
           
    }   
  
    private static void transposta() {   
           
    }   
  
    private static Matriz lerMatrizDoUsuario(int num) {   
    	
    	Scanner input = new Scanner(System.in);
    	
        System.out.println("Digite o número de linhas da " + num + "ª Matriz: ");   
        int m = input.nextInt();   
  
        System.out.println("Digite o número de colunas da " + num + "ª Matriz: ");   
        int n = input.nextInt();   
  
        return Matriz.lerMatriz(m, n);   
    }   
}  

Abraços…