Usando um metodo de uma classe na outra

4 respostas
D

como Faço para usar um metodo publico de um calsse y na classe x qua não é principal?

4 Respostas

rso1988

Vc precisa instanciar um objeto da sua classe “y” dentro da sua classe “x”, exemplo:

public class ClasseX (){
     
       ClasseY y = new ClasseY ();
       y.metodoDaClasseY;
}

public class ClasseY (){

       public void metodoDaClasseY (){
       // Seu código
       }
}

Esperdo ter ajudado!

rmendes08

Ou então você declara o método static, aí você não precisar criar uma instância:

classe X{
   public void foo(){
       Y.doSomething();
   }
}

classe Y{
   public static void doSomething(){
   }
}
Alexandre_Laranja
rmendes08:
Ou então você declara o método static, aí você não precisar criar uma instância:
classe X{
   public void foo(){
       Y.doSomething();
   }
}

classe Y{
   public static void doSomething(){
   }
}

entao a diferença entre vc instanciar o metodo em outra classe ou deixar ele static seria qual?
pq o static poderia ser acessado de qualquer classe??
se sim, isso nao seria menos seguro???

rso1988

Vamos por parte então…

Quando falamos em instanciar um objeto “X” da classe “ClasseX” (mais especificamente quando fazemos um “new”), estamos falando que os recursos da classe “ClasseX” (métodos e atributos), irão ser possíveis ser acessados através do objeto “X”. Exemplo: “X.metodo”, “X.atributo”.

Quando fazemos um “new ClasseX ()”, estamos chamando o construtor da classe “ClasseX”, é ele quem dará os primeiros valores padrões para os atributos da classe “ClasseX”, caso vc queira colocar os seus valores iniciais, é só vc criar um construtor atribuindo os parâmetros que desejar aos atributos. O construtor nada mais é do que um método com o mesmo nome da classe, porém somente é usado o “public”. Exemplo: “public ClasseX ()”. A partir daí, você poderá estar utilizando os métodos e os atributos dessa classe.

Método estático:

Quando dizemos que um método é estático (static), estamos dizendo que ele poderá ser invocado sem haver a necessidade de instanciar um objeto.
Recapitulando… Foi dito logo acima, que temos que instanciar um objeto da classe para que possamos utilizar os métodos e os atributos da classe através do objeto, então qual a diferença de acessar um método que não seja estático utilizando o objeto da classe, e de acessar um método estático sem ter instanciado um objeto?

A diferença é simples. É que quando não instanciamos um objeto, não chamamos o construtor e consequentemente não atribuímos a nenhum objeto, nenhum atributo nem método. Porém, se o método é estático, podemos invocá-los usando o nome da classe.método (ClasseX.método) mas o detalhe é que não poderemos usufruir dos atributos.

Então podemos concluir, que um método estático, normalmente é usado para utilidades menos complexas, onde só usaremos os recuros da classe, que no caso é o método, e não as informações associadas à um objeto individualmente.

Mas não que isso seja menos seguro. O fato é que se vc ficar chamando método estático pra todo lado, a estrurura do seu código vira uma bagunça.

À princípio parace ser um pouco confuso, mas isso é normal pra quem está iniciando, mas isso é questão de tempo e prática.

Qualquer dúvida, só responder!..

Criado 27 de fevereiro de 2009
Ultima resposta 28 de fev. de 2009
Respostas 4
Participantes 4