freeCodeCamp/guide/portuguese/java/methods/index.md

89 lines
4.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
title: Methods
localeTitle: Métodos
---
# Métodos
O método mais reconhecível em Java é provavelmente `public static void main(String[]args)` , onde `public` significa que os usuários têm acesso ao método, `static` significa que o método é baseado em uma "classe" em vez de uma "instância", `void` meios que nada será retornado do método para outro método (nível superior) e `main` que é o nome desse método específico.
`getName()` e `getManufacturerName()` são dois métodos "Getter" que usamos aqui. Geralmente, os métodos em Java consistem nessas partes -
* Acesse Modifer (Opcional) - `public` , `private` ou `protected` . Padrões para pacote privado se omitido
* Tipo de Retorno - Isso é obrigatório, denota o valor retornado pelo método ou `void` se nada for retornado
* Nome do Método - segue a convenção camelCase
* Lista de Parâmetros - Lista de parâmetros com seus nomes e tipos, vazios se nenhum parâmetro for aceito
* Corpo do método cercado por `{ }`
Os métodos também podem, opcionalmente, ter a palavra-chave `static` , o que significa que ela está associada à própria classe, em vez de uma instância da classe, ex- `public static void main()` .
Observe que, diferentemente do JavaScript, temos **que** definir o tipo de retorno de qualquer método que escrevermos, caso contrário, ele falhará em tempo de compilação. Se você não quiser que um método retorne nada, use o tipo de retorno `void` .
Cada método tem uma assinatura, que é a combinação do tipo de dados, o nome e o número de argumentos que o método usa. Em `public static void main` o método não possui um tipo de dados especificado e, em vez disso, usa `void` para declarar que nenhum dado é retornado. Em um método chamado `public static double ave(double val, double val)` o tipo de dado é "double" (0.0), o nome é "ave" (average) e o método recebe 2 argumentos. Cada método **deve** ter uma assinatura exclusiva.
```java
public class Car {
private String name;
private String manufacturersName;
public void changeName() {
name = "Tesla";
}
public String getName(){
return name;
}
public String getManufacurername(){
return manufacturersName;
}
}
```
Parâmetros podem ser passados para métodos. Os parâmetros são declarados logo após o nome do método, entre parênteses. A sintaxe da declaração de parâmetro é \[Tipo de dados\] \[Nome\].
```java
public class Car {
private String name;
public void changeName(String newName) {
name = newName;
}
}
```
Como acontece com qualquer outra linguagem, os métodos (ou funções, se você está aqui no mundo JS) são usados com freqüência por sua modularidade e reusabilidade.
Os métodos geralmente servem a muitos propósitos, como atualizar informações em um objeto ou fornecer dados de volta ao chamador. Aqui estão alguns exemplos.
```java
public class Car {
private int numberOfWheels;
public void setNumberOfWheels(int newNumberOfWheels) {
numberOfWheels = newNumberOfWheels;
}
public int getNumberOfWheels() {
return numberOfWheels;
}
}
```
No caso de `getNumberOfWheels()` o tipo de retorno é `int` que é um número inteiro. A palavra-chave `return` diz ao java para retornar o valor da variável da ocorrência `numberOfWheels` . `setNumberOfWheels(int newNumberOfWheels)` no entanto, não possui nenhum tipo de retorno, pois é um método setter como visto anteriormente. Nesse caso, ele aceita um argumento do tipo `int` e torna a ocorrência varible `numberOfWheels` igual a `newNumberOfWheels` .
Há também um método especial chamado construtor que permite que os dados sejam definidos ou que as operações sejam executadas quando a classe é instanciada. Este construtor não possui nenhum tipo de retorno.
```java
public class Car {
private String model;
private int numberOfWheels;
public Car(String model, int numberOfWheels) {
this.model = model;
this.numberOfWheels = numberOfWheels;
}
}
```
A classe `Car` e o método `Car(String model, int numberOfWheels)` precisam ter o mesmo nome para que o java saiba que é o construtor. Agora, sempre que você instanciar uma nova ocorrência `Car` com a `new` palavra-chave, precisará chamar esse construtor e passar os dados necessários.