Eu fiz um método para mostrar o conteúdo do vetor "numeros" mas como eu chamo o método ? essa parte eu não estou conseguindo fazer. Se alguém puder da uma força =]
ps: eu sei chamar métodos "normais" mas é a primeira vez que estou mechendo com vetores em java...
Cara... não entendi muito bem. Mas não seria algo assim?!
classforEach2{voidimprimiArray(int[]numeros){for(intx:numeros){System.out.println(x);}}publicstaticvoidmain(String[]args){forEach2exemplo=newforEach2();int[]numeros=newint[10];for(inti=0;i<10;i++){numeros[i]=i*10;}//Chamando método para imprimir arrayexemplo.imprimiArray(numeros);}}
Espero ter ajudado. Até.
sinister182
Então dmarcosm eu tentei dessa forma também mas da o seguinte erro:
Cara… tentei compilar aqui na minha máquina e funciona perfeito.
A única coisa que vejo, mas não é necessariamente um erro, é que a classe não é public. Mas isso não impediria ela de executar normalmente.
Qual sua versão de java?! Tente instalar a JDK mais recente…
sinister182
marcobiscaro2112 dessa forma funcionou corretamente, vocêp oderia me explicar o porque da sua forma funcionar e a minha não ?
dmarcosm eu uso o jdk_1_6_0_11
M
marcobiscaro2112
A grande sacada é que o método imprimiArray deve ser estático, para que possa ser acessado no método main, uma vez que o próprio main é estático. Em um meio estático só se pode fazer referências a objetos instanciados ou a outros métodos estáticos (estudando orientação a objetos você entenderá melhor isso). Quanto ao modificador public, não é indispensável, mas é aconselhável aprender a usá-lo (e os outros modificadores de acesso também).
sinister182
putz marcobiscaro2112 esse detalhe me passou despercebido pois eu já tinha estudado sobre isso, vlw mesmo pela ajuda mas agora fiquei com mais uma dúvida…se esse método estivesse em outra classe…mesmo asim dele deveria ser static ?
M
marcobiscaro2112
Depende… mas a princípio sim. A chamada seria algo como:
OutraClasse.imprimiArray(numeros);
O método não deve ser estático apenas se ele for diferente para cada instância, ou seja, é influenciado por atributos não-estáticos. Por exemplo, uma classe Cliente:
Repare que nenhum dos métodos é estático. Logo, só podem ser chamados se houver uma instância da classe Cliente (o que é correto, pois não podemos chamar o getNome de um cliente que não existe…).
Já no caso de imprimir arrays, o método é estático pois não sofre influência de nenhum atributo não estático, evitando a criação de um objeto desnecessário.
sinister182
marcobiscaro2112 muito obrigado mesmo pela ajuda, agora intendi perfeitamente =]