Objetos e return

3 respostas
edymrex

Bem tenho uma dúvida boba e gostaria que alguém me ajudasse pois já estudei sobre o assunto só que estou um pouco esquecido, bem há 3 formas de chamar um método certo? se ele for static eu não presciso criar um objeto da classe para chama-lo, isso eu já sei se eu método estiver em outra classe tenho que criar um objeto da mesma e chama-lo atráves da variável de instância do objeto, mas se o método estiver na mesma classe tipo:

import javax.swing.JOptionPane;
 
public class Testes
{
   public static void main(String[] args)
   {
      int x=5;
      int y=6;
      Testes chama = new Testes();
      System.out.println(chama.soma(x, y));
      
      
   }
   public int soma(int x,int y)
   {
	   return x+y;
   }
}

eu achava que quando o método estivesse dentro da classe eu não precisaria criar um objeto da classe para chamar qualquer método da classe, mas se estiver static tem como chamar

import javax.swing.JOptionPane;
 
public class Testes
{
   public static void main(String[] args)
   {
      int x=5;
      int y=6;
       
      System.out.println(soma(x, y));
      
      
   }
   public static int soma(int x,int y)
   {
	   return x+y;
   }
}

Alguém pode me explicar quais são as formas de chamar um método são somente essas, outra dúvida minha e no caso do return tem como um método desse tipo

public static int soma(int x,int y)
   {
	   return
   }

retorna nada quais são os tipos de return no java???

3 Respostas

peerless

Quanto ao tipo de retorno, ele deve ser sempre de acordo com a assinatura do método.
Logo, se você não retornar nenhum argumento, lançará um exception.

Quanto a invocar métodos: Instância, Herança, Padrão

lembre-se, o main pode estar dentro da sua classe, mas como ele é estático, é como se ele fosse separado, ele só irá enxerga-la se existir uma instancia da mesma… agora, se o método também for static, basta chama-lo diretamente: SeuMetodoStatic() dentro no main

ViniGodoy

É o seguinte:

Sempre que o método não for estático, você precisará da instância do objeto.

Sempre que o método for estático, você não precisa da instância.

Dito isso:

public class Xyz() {
     public void naoEstatico1() { }
     public void naoEstatico2() {
        naoEstatico1(); 
        //Equivale a this.naoEstatico1();, 
        //logo estamos atuando sobre a instância.
    }

   public static void estatico1() {}
   public static void main (String[] args) {
          //Equivale a Xyz.estatico1(); 
          //Ok, pq também é estático
          estatico1(); 
          //Num método estático, não temos uma instância, 
          //então não é possível fazer a chamada abaixo:
          naoEstatico1(); //Erro!

          //Agora sim! Atuaremos sobre a instância xyz
          Xyz xyz = new Xyz();
          xyz.naoEstatico2();    
   }
}
edymrex

Muito obrigado eu tinha estudado sobre isso soh estava confuso mesmo…!

Criado 22 de maio de 2007
Ultima resposta 22 de mai. de 2007
Respostas 3
Participantes 3