CodeGym /Blogue Java /Random-PT /Métodos Java
John Squirrels
Nível 41
San Francisco

Métodos Java

Publicado no grupo Random-PT
Variáveis ​​e constantes em Java armazenam valores, enquanto os métodos contêm um conjunto de operadores que executam determinadas ações. Ou seja, os métodos em Java determinam o comportamento dos objetos e executam ações em algumas variáveis. Eles podem realizar ações, bem como produzir um determinado resultado.

O que são métodos em Java?

Os métodos definem o comportamento dos objetos e são uma sequência de comandos que permite realizar alguma operação no programa. Em outras linguagens de programação, os métodos são frequentemente chamados de “funções”, e com razão. Na verdade, um método é uma função no sentido matemático. Geralmente algo é fornecido na entrada do método (algumas variáveis), essas variáveis ​​são processadas por uma sequência de comandos, e então o método produz um resultado. Provavelmente, você já encontrou métodos, pelo menos com public static void main(String[] args) . Este método geralmente inicia a execução de um programa Java.

Como declarar métodos em Java?

Todos os métodos em Java são criados dentro de classes. Eles são declarados da seguinte forma:
accessSpecifier ReturnType name (parameter list) {
//method body
}
Por exemplo:
public int addTwoNumbers (int a, int b){

//method body
return}
Onde public é um especificador de acesso, int é um tipo de variável que o método retorna, addTwoNumbers é o nome do método, aeb são os parâmetros do método. Vamos dar uma olhada com mais detalhes. O especificador de acesso é usado para definir o tipo de acesso do método. eles podem ser os seguintes:
  • public : o acesso ao método está disponível em qualquer classe.

  • private : o acesso está disponível dentro da classe onde foi definido.

  • protegido : o acesso está disponível apenas dentro do pacote ou em outras subclasses de outro pacote.

  • padrão : o acesso está disponível no pacote onde é declarado. Neste caso, a palavra “padrão” não está escrita.

Return Type define o tipo que este método retorna. No exemplo acima, int é o tipo de retorno. Se um método não retornar nada, o tipo de retorno será nulo:
public void printSomething (String myString) {}
O nome do método é um nome exclusivo do seu método. Explicaremos algumas regras de nomenclatura Java um pouco mais adiante neste artigo. Nos métodos acima os nomes são addTwoNumbers e printSomething . A lista de parâmetros é a lista de argumentos (tipo de dados e nome da variável) que o método utiliza. No primeiro exemplo acima, “int a, int b” são parâmetros, no segundo, String myString é um argumento. Você também pode deixar este campo em branco se não quiser usar nenhum parâmetro no método.

Exemplo de parâmetros de método

public void printSomething (String myParameter1, int myParameter2) {}
Aqui estão duas variáveis, myParameter1 e myParameter2 . Eles são parâmetros de método. é o conjunto de instruções entre chaves que o método executará. Se o tipo de retorno do método não for nulo, a palavra-chave return deverá estar presente no corpo do método. return é seguido pelo argumento que este método retorna. Portanto, para criar um método, é necessário especificar seu nome junto com colchetes, e entre colchetes, se necessário, as variáveis ​​​​sobre as quais o método irá operar. Antes do nome do método há um especificador de acesso e um tipo de variável que o método retorna, ou void se o método não retornar nada. Entre chaves, escrevemos o método real, uma sequência de instruções que geralmente funciona com os argumentos do método. Aqui está um exemplo de método que encontra o maior número em um array e o retorna.
public int findBiggest(int[] numbers) {
   int max;
   max = numbers[0];
   for (int i = 1; i < numbers.length; i++) {
       if (max < numbers[i]) {
           max = numbers[i];
       }
   }
   return max;
}

Como nomear um método?

Não existem regras rígidas para nomear métodos, mas existem diretrizes que você deve seguir se planeja desenvolver profissionalmente em Java. Os nomes dos métodos são muitas vezes verbos, escritos em letras maiúsculas e minúsculas, começando com uma letra minúscula, mas usando uma letra maiúscula para cada palavra subsequente (camelCase). aqui estão alguns exemplos:
int addTwoNumbers (int a, int b)
void run()

Como chamar um método

Para chamar um método, basta escrever seu nome e definir as variáveis ​​correspondentes caso estivessem na declaração. Vamos chamar o método findBiggest no método principal :
public static void main(String[] args) {
  int[] array = new int[] {5, 7, -2, 6, 7, 1};
  int max = findBiggest(array);
   System.out.println("the biggest number in array is: " + max);
  }
A saída deste programa é:
o maior número na matriz é: 7

Diferentes tipos de métodos em Java

Em Java, tudo é feito de objetos, e o comportamento dos objetos é definido por métodos. Convencionalmente, podemos dizer que Java possui métodos predefinidos e definidos pelo usuário. Métodos predefinidos são métodos incluídos em classes que fazem parte da própria linguagem Java.

Métodos predefinidos

Métodos de biblioteca predefinidos ou padrão são integrados ao Java. Claro, todo programador pode usá-los ou até mesmo modificá-los localmente para seus programas. A biblioteca de classes Java está localizada em um arquivo Java (por exemplo, *jar) com uma máquina virtual Java (JVM) e um ambiente de tempo de execução Java. Podem ser, por exemplo, métodos da classe Math como min() , max() ou abs() . Ou métodos de manipulação de strings como concat() . Vamos criar uma classe com um método principal e chamar alguns métodos de biblioteca padrão.
import static java.lang.Math.max;

public class Test {

    public static void main(String[] args) {
       int a = 5;
       int b = 7;
       int max = max(a,b);
       System.out.println(max);
       String str1 = "I am ";
       String str2 = "here ";
       String str3 = str1.concat(str2);
       System.out.println(str3);


   }

}
Observe que para utilizar os métodos da classe Math , ela deve ser importada no início do programa. Caso isso não seja feito, você pode escrever o nome da classe antes do nome do método separado por um ponto:
int max = Math.max(a,b);

Métodos definidos pelo usuário

Esses métodos são criados por programadores de acordo com os requisitos de seus projetos. Na verdade, já criamos o método findBiggest() definido pelo usuário acima. Para consolidar, vamos criar outro método que não retorne nada e não tenha parâmetros, mas responda ao nome inserido e diga olá (ou seja, envie para o console).
import java.util.Scanner;

public class Test {

   public void repeater() {
       Scanner scanner = new Scanner(System.in);
       System.out.println("WHat should I repeat after you?...");
       String s =  scanner.nextLine();
       System.out.println(s);
   }
}

Criando métodos estáticos em Java

Geralmente, os métodos em Java são métodos de objetos. Para chamar um método, você precisa criar uma instância da classe onde este método está definido. No entanto, também existem métodos estáticos. Eles diferem dos normais porque estão vinculados a uma classe, não a um objeto. Uma propriedade importante de um método estático é que ele só pode acessar variáveis/métodos estáticos. Eles são definidos usando a palavra-chave estática . Assim, na classe Math , todos os métodos para trabalhar com variáveis ​​são estáticos. Podemos criar algo semelhante à classe Math e coletar nela vários métodos estáticos que podem ser usados ​​sem criar uma instância da classe que a contém. Vamos chamá-lo de Números .
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;


public class Numbers {


   public static int findMax(int left, int right) {
       return (left < right) ? right : left;

   }


   public static boolean isNegative(int number) {
       return number < 0;
   }

   public static long power(long number, int deg) {

       if (deg == 0) {
           number = 1;
           return number;
       } else {
           number = power(number, deg - 1) * number;
           return number;
       }
   }

   public static long abs(long number) {
       return number > 0 ? number : -number;
     }


    public static void main(String[] args) {

       int a = 5;
       int b = 7;
       long c = -7;
       long abs = abs(c);
       System.out.println(abs);
       System.out.println(findMax(a,b));

   }

}
A saída do programa está aqui:
7 7
Primeiro, é chamado um método que procura o valor absoluto do número e, em seguida, um método que procura o maior dos dois números. Você não precisa criar uma instância da classe Numbers para chamar esses métodos porque ambos os métodos são definidos como estáticos.

Aplicando métodos de instância em código Java

Métodos de instância ou métodos regulares podem ser chamados na instância da classe na qual o método está definido.
public class Cat implements Voice{
   String name;
   String breed;
   int year;


   public void talk() {
       System.out.println("meow meow");
   }
}
Para chamar o método talk() , você precisa criar uma instância da classe Cat :
public class Demo {
   public static void main(String[] args) {
       Cat cat = new Cat ();
       cat.talk();

   }
}
A saída deste programa está aqui:
miau miau

Métodos abstratos em Java

Métodos abstratos em Java são métodos sem implementação. Ou seja, eles não contêm código quando são declarados. Eles só podem ser declarados em classes abstratas e implementados em seus descendentes não abstratos. Vamos criar uma classe abstrata com um método abstrato myMethodAdd() .
abstract class DemoAbs {
   abstract void myMethodAdd();
}
Agora vamos criar uma classe Child desta classe abstrata, DemoAbs . Aqui devemos necessariamente implementar o método myMethodAdd() .
public class myClass extends DemoAbs {

   void myMethodAdd() {
       System.out.println("hello");
   }

   public static void main(String[] args) {
       DemoAbs demoAbs = new myClass();
       demoAbs.myMethodAdd();
   }
}

Alocação de memória para chamadas de método

Este é um tema bastante complexo que requer uma análise mais cuidadosa. Aqui vamos citar apenas o mais básico para um conhecimento superficial do tema. A memória JVM consiste em áreas de heap e pilha. O heap é uma área da memória que armazena objetos Java. A memória de pilha é uma área temporária de memória que armazena variáveis ​​primitivas e referências a objetos de método. A memória da pilha contém valores de curta duração que dependem do método. Este tipo de memória é baseado no princípio Last In First Out (LIFO). A memória da pilha cria um novo bloco quando chamamos um método. Ele contém valores primitivos locais. Quando finalizamos um método, o bloco criado na memória da pilha fica livre.

Conclusão

Neste artigo, conhecemos os fundamentos da criação de métodos na linguagem Java, bem como quais métodos existem em Java e como trabalhar com eles. Aprendemos que os métodos determinam o comportamento das classes. Sem métodos seria impossível que os objetos interagissem entre si. Para reforçar o que você aprendeu, sugerimos que você assista a uma vídeo aula do nosso Curso Java
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION