JavaRush /Blogue Java /Random-PT /Métodos em Java
articles
Nível 15

Métodos em Java

Publicado no grupo Random-PT
Métodos em Java - 1Em Java, um aplicativo consiste em classes. As classes, por sua vez, consistem em variáveis. Eles são responsáveis ​​por armazenar dados e métodos responsáveis ​​pelo comportamento da classe: ou seja, a lógica que ela pode fornecer (por exemplo, processar alguns dados, chamar outros métodos, etc.). Podemos falar sobre esses componentes como variáveis ​​por muito tempo, mas não é por isso que nos reunimos hoje. Vamos falar melhor sobre um componente da classe como um método. Métodos em Java - 2Um método é um bloco nomeado de código declarado dentro de uma classe. Ele contém uma certa sequência completa de ações (instruções) destinadas a resolver um problema separado, que pode ser reutilizada. Em outras palavras, um método é uma função: algo que sua classe pode fazer. Outras linguagens também possuem funções. Somente em Java eles são membros de classes e, segundo a terminologia OOP, são chamados de métodos. Mas antes de continuarmos, vejamos um pequeno exemplo:
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
Não há nada complicado aqui: um método Java cuja tarefa é gerar uma string de saudação com o nome que passamos para ela. Como por exemplo - Hello world! My name is Bobby vamos entender a construção de um método corretamente observando cada palavra-chave na declaração do método (da esquerda para a direita). Nossa primeira palavra-chave é publice denota um modificador de acesso:

Modificadores de acesso

Eles indicam o escopo de visibilidade permitido para os membros da classe, ou seja, a restrição dos locais em que uma variável ou método pode ser usado. Métodos em Java - 3Os seguintes modificadores de acesso são usados ​​em Java:
  • público : público. Os métodos ou campos com este modificador são públicos, visíveis para outras classes (ou melhor, seus métodos e campos) do pacote atual e de pacotes externos. Este é o nível de acesso mais amplo conhecido;

  • protegido : métodos ou variáveis ​​com este modificador podem ser acessados ​​de qualquer lugar da classe ou pacote atual, ou em classes que herdam este, assim como métodos ou campos, mesmo que estejam em outros pacotes

    protected String constructHelloSentence(String name) {...}
  • Modificador padrão. Se um campo ou método de classe não tiver um modificador, o modificador padrão será aplicado. Neste caso, os campos ou métodos ficam visíveis para todas as classes do pacote atual (como protected , mas sem visibilidade ao herdar).

    String constructHelloSentence(String name) {...}
  • private : o oposto do modificador public . Um método ou variável com tal modificador só está disponível na classe em que foi declarado.

    private String constructHelloSentence(String name) {...}
A seguir temos Stringna assinatura do método (a primeira linha do método descrevendo suas propriedades).

Valor de retorno

O valor de retorno são os dados (algum resultado da execução do método) que vêm em seu lugar após a chamada. Todo método tem um valor de retorno. Ou não?

Métodos de valor de retorno

Este valor pode ser qualquer tipo de dado: uma variável de tipo simples ou um tipo de referência. Neste exemplo indicamos que o método deve retornar um objeto do tipo String, que, como lembramos, é uma classe que descreve uma string. O segundo ponto aqui é a palavra return. Tem uma relação direta com o valor de retorno: o valor após ele será enviado de volta ao local onde o método foi chamado, e o próprio método será então returnfechado. Esta palavra geralmente aparece na última linha do método (exceto para métodos com vários ramos como if, else...). Se você escrever o código na próxima linha depois return:
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
então receberemos maldições do compilador, o que não é muito bom (o compilador não recomendará bobagens). Você também precisa lembrar que o tipo de dados posterior сdeve corresponder àquele declarado na assinatura do método. returnLeia mais sobre aqui .

vazio

Para que é usado voidem Java? Nem todos os métodos possuem um valor de retorno. Alguns não têm nada ou não precisam devolver nada. O que fazer então? Então, na assinatura do método, escrevemos void. Como seria o nosso método sem um valor de retorno?
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
Você provavelmente notou que junto com o valor de retorno, a palavra returnSo it is desapareceu, pois nosso método não deve retornar nada. Porém, pode ser colocado aqui, mas sem nenhum significado, apenas return; na última linha. Isso geralmente é inútil, portanto voidé opcional em métodos com. No entanto, ele pode ser usado de forma útil em voidmétodos, como ramificações ou loops, nos quais você deseja sair do método imediatamente. Em seguida, na declaração do método, tivemos constructHelloSentence.

Nomes de métodos

constructHelloSentence - o nome do método, uma característica distintiva pela qual podemos distinguir um ou outro método. E, consequentemente, chame um ou outro método. Métodos em Java - 4Os nomes dos métodos devem começar com uma letra minúscula, mas também usar camel case (CamelCase, camel case): ou seja, Cada palavra seguinte do nome é adjacente à anterior e é escrita em maiúscula. Os nomes dos métodos devem descrever o método (o melhor comentário é a nomenclatura adequada). Para fazer isso, use verbos ou combinações com verbos: getCat, delete, createCare assim por diante. Dentro de uma classe, os nomes dos métodos devem ser únicos (sem contar a sobrecarga de métodos, sobre a qual falaremos um pouco mais tarde). Vamos examinar mais detalhadamente o método que estamos analisando e ver ( String name)

Parâmetros do método

Os métodos podem (ou não) ter determinados dados que virão de fora, nomeadamente do local onde o método foi chamado. No nosso caso, vemos que chega um objeto do tipo Stringcom nome namee futuramente utilizamos essa variável em nosso método. Você pode usar um número ilimitado de parâmetros em um método, mas mais de 7 não são recomendados. Quando não sabemos o número exato de elementos, mas todos esses elementos são necessários para o mesmo propósito e serão do mesmo tipo (por exemplo, String), são usadas reticências:
public void constructHelloSentence(String...name) {
 ...
}
O apelo a cada elemento será assim: name[0] Isso te lembra alguma coisa? Isso mesmo, matriz! Nada mudará se escrevermos:
protected void constructHelloSentence(String[] name) {
 ...
}
O acesso aos elementos também será da forma: name[1] E mais uma coisa. Os argumentos do método podem ser finais :
public String constructHelloSentence(final String name) {
  ...
}
Isso significa que a referência do nome está vinculada a um objeto específico Stringe não pode ser substituída. finalVocê pode ler sobre como trabalhar com variáveis ​​de referência e sua interação com palavras reservadas no material “ Tipos de dados de referência em Java ”.

Métodos de Chamada

Então, resolvemos a criação de métodos, agora vamos falar sobre como usá-los. Como chamar um método em Java? Métodos em Java - 5Cada método em Java está em uma classe. Para entender como funciona a chamada de métodos em Java, vamos fazer uma aula:
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Como nosso método não é estático (este é um tópico separado para discussão que vai além do escopo do artigo de hoje), para chamá-lo você deve primeiro criar um objeto e depois chamar o método nele:
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
Nos argumentos do nosso método, passamos a string (nome) que queremos ver na string resultante exibida na tela:

Hello world! My name is Den
Vale lembrar também que os métodos podem ser reutilizados quantas vezes forem necessárias – não há restrições.

esse

Muitas vezes você pode ver a palavra-chave em code this, como em setters:
public void setValue(Long value) {
   this.value = value;
}
E o que isto quer dizer? thisem Java, esta é uma referência ao objeto atual desta classe. Por exemplo, se criamos um objeto:
StringConstructor stringConstructor = new StringConstructor();
então thisdentro do objeto stringConstructorhaverá um link para o mesmo objeto. thisé usado tanto para se referir a uma variável de objeto (como no setter acima) quanto para chamar algum método. Podemos reescrever um pouco nossa classe:
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
Através thischamamos o método deste objeto para obter a string necessária. Mas ainda assim, via de regra, isso quase não é usado para métodos, pois mesmo sem ele há uma referência a um método de um determinado objeto; é usado principalmente para uma variável de objeto.

Sobrecarga de método

Digamos que precisávamos de um método que executasse essencialmente a mesma lógica, mas em um formato Hello world! em vez disso world, queremos inserir nossa própria palavra (string). Mas já temos um método constructHelloSentence. Então, precisamos criar um novo nome para um método que execute essencialmente a mesma funcionalidade? Não importa como seja: neste momento a sobrecarga de métodos vem em nosso auxílio. Métodos em Java - 7A sobrecarga de método é o uso do mesmo nome de método mais de uma vez ao declará-lo em uma classe. Do ponto de vista da sintaxe da linguagem, não pode haver dois nomes idênticos em algum espaço local. Mas também é possível declarar métodos com os mesmos nomes, mas com argumentos diferentes. Em outras palavras, uma classe contém sobrecargas quando há dois ou mais métodos com os mesmos nomes, mas com dados de entrada diferentes:
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Aqui vemos que os métodos não precisam conter o mesmo modificador de acesso (assim como o tipo de retorno). Se um método sobrecarregado for chamado, a partir de vários métodos declarados, o compilador determinará automaticamente o método necessário com base nos parâmetros especificados durante a chamada.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION