ae pessoal queria saber se é obrigatorio o uso do static qdo declaro um metodo… fiquei meio confuso agora, pq ja metodos que o uso do static… por exemplo:
publicclassMulti{publicstaticvoidmain(Stringargs[]){intarray[][]={{1,2,3},{4,5,6}};System.out.println("valor array ");outputArray(array);// exibe array1 por linha}//inicio do metodopublicstaticvoidoutputArray(intarray2[][]){//faz um lop nas linhasfor(introw=0;row<array2.length;row++){//faz um loop nas colunasfor(intcolumn=0;column<array2[row].length;column++)System.out.printf(" %d",array2[row][column]);System.out.println();}}}
se eu tirar o static do metodo da erro pq? qual a função mesmo de eu usar static…
Da erro porque o método main é estático e de um contexto estático não se pode invocar métodos não estáticos.
Métodos estáticos são métodos de classe:
classe.metodoStatic();
Métodos dinamicos são métodos de objetos:
objeto.metodo();
tattooba
Bem… pelo pouco que conheco… você estaria indo contra o conceito de orientação a objetos… nesse caso você poderia criar um outro objeto que tivesse tal método… sendo assim vc instancia o objeto e assim utiliza os seus métodos… pelo menos seria assim a minha implementação… com o modificar de acesso static permite que vc chame o método sem precisar instanciar um objeto dele… como no “public static void main…” ele não enxerga o método ao qual está chamando … espero ter tirado sua dúvida!!
LPJava
entao teria q definir meu metodo fora do public static void main…
para que ele possa ser definido como nao estatico?
tattooba
+/- isso… na verdade vc teria q ter outra classe que tivesse o método ao qual vc quer chamar… entende… aí vc iria instanciar o objeto dentro da sua classe Multi… sem precisar colocar o método como static, exemplo:
publicclassMulti{publicstaticvoidmain(Stringargs[]){//Intancia um objeto da classe OutputOutputobj=newOutput();
int array[][] ={{1,2,3},{4,5,6}}; System.out.println("valor array "); //Chama o método que pertence ao objeto obj obj.outputArray(array); // exibe array1 por linha}
}
// outra classe a qual você irá instanciar o objeto
public class Output{
publicvoidoutputArray(intarray2[][]){//faz um lop nas linhasfor(introw=0;row<array2.length;row++){//faz um loop nas colunasfor(intcolumn=0;column<array2[row].length;column++)System.out.printf(" %d",array2[row][column]);System.out.println();}}