Bem eu tenho uma duvida secalhar ate um pouco estupida mas como sou iniciante espero que me “perdoem” por vos estar a fazer este tipo de questoes. Ora a questao é eu tenho uma classe, nessa classe obrigatoriamente tenho que ter um metodo main, agora a questão é o main é sempre Void certo ? ou seja nao retorna nada. Eu queria realizar a impressao de uma matriz logo tinha que a retornar para concluir a sua leitura por isso, este mesmo codigo nao pode estar dentro do main logo tenho que criar outro metodo que nao seja Void. O que agora acontece é que o programa nao me deixa compilar poque eu nao tenho nada no metodo main. ora vejam o codigo:
Na verdade, como você só quer imprimir o vetor no console, o método não precisa retornar nada, pois vc ja ta imprimindo dentro do método imprimeMatriz.
como o método não é statico, você precisa instanciar a classe Experiencia pra poder executar. Ficaria ± assim
publicclassexperiencia{publicstaticvoidmain(String[]args){Experienciaexperiencia=newExperiencia();// Cria a matrizexperiencia.imprimematriz(matriz)}publicvoidimprimematriz(int[][]matriz){intvetorexp[][]=newint[5][5];for(inti=0;i<5;i++){for(intj=0;j<5;j++){if(i==j)vetorexp[i][j]=2;elsevetorexp[i][j]=5;System.out.println(" "+vetorexp[i][j]);}}}}
Só lembrando que vc deve se atentar as nomeclaturas. Nome de classe por exemplo, sempre começa com maiuculo
marcos4ft
alias, olhando aqui o código, vc nem usa a variavel matriz q é passada como parametro, ta todo doido esse método aí…
A
andrefilipe6
tem toda a razao, contudo eu tentei compilar o codigo e esta me a dar um erro.
publicclassexperiencia{publicstaticvoidmain(String[]args){experienciaexperiencia=newexperiencia();// Cria a matriz experiencia.imprimematriz(matriz)}int[][]imprimematriz(int[][]matriz){for(inti=0;i<5;i++){for(intj=0;j<5;j++){if(i==j)matriz[i][j]=2;elsematriz[i][j]=5;System.out.println(" "+matriz[i][j]);}}returnmatriz;}}
esta me a dar erro neste passo :
experiencia.imprimematriz(matriz)
E
Edeilson
Claro colega, em todo programa que há um main ele sempre será assim: public static void main(String[] args)
qualificador de acesso é public
será um método estático (static)
não retornará nada void
para que a impressão da matriz seja feita você deve chamar dentro do main o método estático que você criou (imprimematriz(null);) e os comando dentro do if e else para serem impresso na tela.
Bom só acrescentando ao que marcos4ft falou, você realmente não vai necessitar retornar nada porque está somente imprimindo os valores da matriz, e há também uma outra coisa que se deve levar em consideração neste caso, você está criando uma nova matriz dentro do metodo e não imprimindo a que foi passada por referencia, no caso acho que o mais correto seria fazer assim.
/** Este aqui é um metodo padrão do java o principal e o primeiro que será chamado na hora da execução* ele deve ser sempre da mesma forma*/publicstaticvoidmain(String[]args){// aqui você cria uma nova matrizint[][]matriz=newint[5][5];// E depois atribui valores a elafor(inti=0;i<5;i++){for(intj=0;j<5;j++){if(i==j){matriz[i][j]=2;}else{matriz[i][j]=5;}}}// E quando quiser imprimir a matriz seja ela de qualquer tamanho// só é chamar o metodo imprimiMatriz// Obs.: para ser utilizado desta forma ele deve ser um metodo static caso// contrario será necessário criar uma nova instancia da classe que possui este metodoimprimirMatriz(matriz);}/** Este metodo irá imprimir matrizes independentes do tamanho* Desde que sejam do tipo int*/publicstaticvoidimprimirMatriz(int[][]matriz){for(inti=0;i<5;i++){for(intj=0;j<5;j++){// Percorre todas as posições da matriz e imprime seus valoresSystem.out.print(matriz[i][j]+" ");}}}
CharlesAlves
Demorei de mais escrevendo este meu primeiro poste faz referência ao primeiro de marcos4ft.
Rodnei
ñ há necessidade de instanciar um objeto no main, basta passar o metodo imprimematriz para estatico e colocar dentro do main
que ela executara numa boa sem problemas.
retirei a matriz parametro do codigo pois ñ faz sentido algum ter um parametro ñ utilizado.