ae galera lendo o deitel cap7 array, fiquei na duvida pelo seguinte pq meu metodo tem q ser static ? nao posso colocar:
public void modificandoArray(array);
nao entendi isso…
em anexo o codigo.
ae galera lendo o deitel cap7 array, fiquei na duvida pelo seguinte pq meu metodo tem q ser static ? nao posso colocar:
public void modificandoArray(array);
nao entendi isso…
em anexo o codigo.
Ola, veja este exemplo:
public class X{
static void metodo1() {
System.out.println("static");
}
void metodo2(){
System.out.println("nao static");
}
public static void main(String [] xxx){
X objeto = new X();
objeto.metodo1(); /*gera warning! */
objeto.metodo2();
X.metodo1();
metodo1();
}
}
Dentro de um metodo estático vc pode invocar qq método estático que pertença à sua classe informando o nome do método ou fazendo nome-classe.nome-metodo. Também podes chamar métodos através de uma instância da classe.
O seu problema é ‘quem chama o método’. Um metodo não estático está associado a uma instância da classe, logo vc precisa de um objeto para chama-lo.
E um método não estático pode chamar qualquer coisa. A diferença é que alguns métodos fazem sentidos na instância do seu objeto e outros fazem sentido na classe. Um bom exemplo são os métodos toString() e cos(ângulo):
toString vai converter o objeto atual em uma string (de acordo com alguma regra que vc criar se vc sobreescreve-lo). ele faz sentido no objeto, na intância da classe.
cos(ângulo) sempre retorna o cosseno do ângulo. ele não depende de mais nada, logo é um método estático da classe Math.
poderia cos ser um método da classe ângulo? até poderia ser. questão de design.
bom entao assim eu tenho um metodo static so posso chamar ele atraves de outro metodo static. e um metodo nao static nao posso chama-lo ele atraves de um metodo static… entao se eu declarar isso
class ttt{
void cham2(){
public static void main(String args[]){
void cham1(){}
ttt objeto = new ttt();
objeto.cham1();// eh valido
objeto.cham2(); //não é valido ser um metodo nao static e to chamando ele de static que o static void main...
seria isso parceiro? acho q ± q entendi na explicacao 
[b]
P.S: os administradores do forum verificar pq a alguns dias que n recebeo e-mail de notificação de resposta nas mensagens. a opção me avise… sempre está marcada ate por está ja definido como default.
[/b]
Seu código ta meio estranho, seria + - assim:
public class TesteStatic {
public void metodo1() { }
public static void metodo2() { }
public static void main(String[] args) {
metodo1(); // inválido, não é possível chamar um método não-estático de dentro de um método estático.
metodo2(); // ok, de estático para estático
}
}
Entendeu??
bom era isso q tentei dizer…ehehe metodo static so static ]… valeu diego 