Ajuda com erro!

Gostaria de saber porque o código está dando erro, esse código tem como finalidade multiplicar 2 matriz e com resultado colocar numa 3 matriz e exibir.

public class Matriz2 {
	int matriz[][] = new int[3][2];
	int matriz2[][] = new int[2][5];
	int matriz3[][] = new int[3][5];
	
	public void adicionaMatriz(int adiciona){
		for(int i = 0;i<matriz.length;i++){	
			for(int j = 0;j<matriz[i].length;j++){
					matriz[i][j]=adiciona;
				}
			}
		}
	
	public void adicionaMatriz2(int adiciona){
		for(int i = 0;i<matriz2.length;i++){	
			for(int j = 0;j<matriz2[i].length;j++){
					matriz2[i][j]=adiciona;
				}
			}
		}
	
	public void calculaMatriz(){
		for(int i = 0;i<matriz3.length;i++){	
			for(int j = 0;j<matriz3[i].length;j++){
				matriz3[i][j]=0;
					for(int k = 0;k<3;k++){
						int valor1 = matriz[i][k];
						int valor2 = matriz2[k][j];
						int result = valor1*valor2;
						matriz3[i][j]=result;
					}
				}
			}
		}
	
	public void exibiMatriz(){
	for(int i = 0;i<matriz3.length;i++){	
		for(int j = 0;j<matriz3[i].length;j++){
			System.out.println(matriz3[i][j]);
			}
		}
	}
}

[code]
public class Principal {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner sc = new Scanner(System.in);
	Matriz2 chama = new Matriz2();
	
	for(int i = 0;i<6;i++){
		System.out.println("Escreve um numero para matriz A: ");
		chama.adicionaMatriz(sc.nextInt());
	}
	
	for(int i = 0;i<10;i++){
		System.out.println("Escreva um numero para matriz B: ");
		chama.adicionaMatriz2(sc.nextInt());
	}
	
	chama.calculaMatriz();
	chama.exibiMatriz();
	sc.close();
}

}[/code]

[quote=fxzero]Gostaria de saber porque o código está dando erro, esse código tem como finalidade multiplicar 2 matriz e com resultado colocar numa 3 matriz e exibir.

public class Matriz2 {
	int matriz[][] = new int[3][2];
	int matriz2[][] = new int[2][5];
	int matriz3[][] = new int[3][5];
	
	public void adicionaMatriz(int adiciona){
		for(int i = 0;i<matriz.length;i++){	
			for(int j = 0;j<matriz[i].length;j++){
					matriz[i][j]=adiciona;
				}
			}
		}
	
	public void adicionaMatriz2(int adiciona){
		for(int i = 0;i<matriz2.length;i++){	
			for(int j = 0;j<matriz2[i].length;j++){
					matriz2[i][j]=adiciona;
				}
			}
		}
	
	public void calculaMatriz(){
		for(int i = 0;i<matriz3.length;i++){	
			for(int j = 0;j<matriz3[i].length;j++){
				matriz3[i][j]=0;
					for(int k = 0;k<3;k++){
						int valor1 = matriz[i][k];
						int valor2 = matriz2[k][j];
						int result = valor1*valor2;
						matriz3[i][j]=result;
					}
				}
			}
		}
	
	public void exibiMatriz(){
	for(int i = 0;i<matriz3.length;i++){	
		for(int j = 0;j<matriz3[i].length;j++){
			System.out.println(matriz3[i][j]);
			}
		}
	}
}

[code]
public class Principal {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner sc = new Scanner(System.in);
	Matriz2 chama = new Matriz2();
	
	for(int i = 0;i<6;i++){
		System.out.println("Escreve um numero para matriz A: ");
		chama.adicionaMatriz(sc.nextInt());
	}
	
	for(int i = 0;i<10;i++){
		System.out.println("Escreva um numero para matriz B: ");
		chama.adicionaMatriz2(sc.nextInt());
	}
	
	chama.calculaMatriz();
	chama.exibiMatriz();
	sc.close();
}

}[/code][/quote]

Vc notou que cada um dos metodos que criou atribui o mesmo numero para todas elementos das 2 matrizes?
Esse determinante seria sempre zero!

Se quisesse atribuir um valor a uma linha x coluna especifica, precisaria de um método mais ou menos assim:

adicionaMatriz1(int linha, int coluna, double value) e
adicionaMatriz2(int linha, int coluna, double value)

onde tornaria o laço de cada método desnecessário, pois os dois primeiros atributos indicam as posições nas matrizes onde quer atribuir o novo valor.

Mesmo que seja um excelente matemático, sugeriria que vc pegasse um tutorial de programação sobre criação de funções e métodos e laços de repetições.

Sim matemática não ta sendo o problema o meu problema e as funções vou pesquisar sobre.

Por favor, ao postar tópico procure:
a) Dar um título descritivo. Se você parar para pensar, quase 100% dos usuários do fórum querem ajuda. E, em uns 90% dos casos, será a respeito de um erro. Logo, seu título acabou só falando o óbvio;
b) Não diga simplesmente que “está dando erro”. Diga qual erro está dando, preferencialmente, copiando a mensagem. Se o programa não está dando mensagem nenhuma, mas não está funcionando, descreva o resultado obtido e diga qual era o resultado esperado;

Essas dicas ajudam você a ser respondido mais depressa. Não espere que os usuários do fórum irão baixar seu código e compilar, por isso, ser descritivo aumenta em muito as chances de você ser corretamente respondido.