Articles

Functions (Português)

Posted by admin

In Java, all functions definitions must be inside classes. Também chamamos métodos de funções. Vejamos um método de exemplo

public class Main { public static void foo() { // Do something here }}

foo é um método que definimos na classe principal. Notice a few things about foo.

  • static significa que este método pertence à classe principal e não a uma instância específica de Main. O que significa que podemos chamar o método de uma classe diferente como essa Main.foo().,
  • void significa que este método não devolve um valor. Os métodos podem retornar um único valor em Java e ele tem que ser definido na declaração do método. No entanto, você pode usar return por si só para sair do método.
  • este método não recebe quaisquer argumentos, mas é claro que os métodos Java podem obter argumentos como veremos mais adiante.,

argumentos

eu sempre gosto de dizer que os argumentos para métodos Java são passados pelo valor, embora alguns possam discordar da minha escolha de palavras, eu acho que é a melhor maneira de explicar e entender como ele funciona exatamente.

Por valor significa que os argumentos são copiados quando o método é executado. Vejamos um exemplo.,

public void bar(int num1, int num2) { ...}

Aqui está um outro lugar no código, onde a barra é chamada

int a = 3;int b = 5;bar(a, b);

Você pode imaginar na sua cabeça que quando bar(a, b) é executado, é como no início do bar as duas linhas seguintes são escritas:

int num1 = a;int num2 = b;

E só depois o resto do método é executado.

Isto significa que a valor copiado para num1 e b valor copiado para num2., Alterando os valores de num1 e num2 não afetará a e b.

Se os argumentos eram objetos, as regras permanecem as mesmas, mas ele age um pouco diferente. Aqui está um exemplo:

public void bar2(Student s1, Student s2) { ...}

E aqui está como nós a usamos

Student joe = new Student("joe");Student jack = new Student("jack");bar2(joe, jack);

Novamente podemos imaginar o mesmo duas linhas no início do bar2

Student s1 = joe;Student s2 = jack;

Mas, quando atribuímos a objetos, é um pouco diferente do que atribuir primitivos., s1 e joe são duas referências diferentes para o mesmo objeto. s1 == joe é verdade. Isto significa que os métodos de execução em s1 irão alterar o objecto joe. Mas se mudarmos o valor de s1 como referência, não afetará a referência joe.

métodos não estáticos

métodos não estáticos em Java são usados mais do que métodos estáticos. Esses métodos só podem ser executados em objetos e não em toda a classe.,

métodos não estáticos podem acessar e alterar o campo do objeto.

chamar os métodos requer um objeto do tipo Student.

resumo

Leave A Comment