Passagem por Valor em Java
Deslize para mostrar o menu
Compreendendo Passagem por Valor em Java
Em Java, todos os argumentos de métodos são passados por valor. Isso significa que, ao passar uma variável para um método, o Java copia o valor dessa variável e envia a cópia para o método. O método então trabalha com essa cópia, não com a variável original do seu código.
- Ao passar um tipo primitivo (como
int,doubleouboolean), o método recebe uma cópia do valor real. Quaisquer alterações feitas no parâmetro dentro do método não afetam a variável original fora do método; - Ao passar uma referência de objeto (como um array ou uma classe personalizada), o Java ainda passa o valor da referência (o endereço de memória). O método recebe uma cópia dessa referência, então tanto a original quanto o parâmetro do método apontam para o mesmo objeto. É possível alterar o estado interno do objeto dentro do método, mas se você atribuir um novo objeto ao parâmetro, a referência original fora do método não será afetada.
Esse comportamento é importante para prever como suas variáveis mudam — ou permanecem as mesmas — após chamadas de métodos em Java.
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int number = 10; System.out.println("Before method call: number = " + number); changeValue(number); System.out.println("After method call: number = " + number); } public static void changeValue(int num) { num = 20; System.out.println("Inside method: num = " + num); } }
Neste código, o método changeValue recebe uma cópia da variável number porque o Java utiliza passagem por valor.
Alterar num dentro do método não afeta number em main, então seu valor permanece 10 após a chamada do método.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Passagem por Valor em Java
Compreendendo Passagem por Valor em Java
Em Java, todos os argumentos de métodos são passados por valor. Isso significa que, ao passar uma variável para um método, o Java copia o valor dessa variável e envia a cópia para o método. O método então trabalha com essa cópia, não com a variável original do seu código.
- Ao passar um tipo primitivo (como
int,doubleouboolean), o método recebe uma cópia do valor real. Quaisquer alterações feitas no parâmetro dentro do método não afetam a variável original fora do método; - Ao passar uma referência de objeto (como um array ou uma classe personalizada), o Java ainda passa o valor da referência (o endereço de memória). O método recebe uma cópia dessa referência, então tanto a original quanto o parâmetro do método apontam para o mesmo objeto. É possível alterar o estado interno do objeto dentro do método, mas se você atribuir um novo objeto ao parâmetro, a referência original fora do método não será afetada.
Esse comportamento é importante para prever como suas variáveis mudam — ou permanecem as mesmas — após chamadas de métodos em Java.
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int number = 10; System.out.println("Before method call: number = " + number); changeValue(number); System.out.println("After method call: number = " + number); } public static void changeValue(int num) { num = 20; System.out.println("Inside method: num = " + num); } }
Neste código, o método changeValue recebe uma cópia da variável number porque o Java utiliza passagem por valor.
Alterar num dentro do método não afeta number em main, então seu valor permanece 10 após a chamada do método.
Obrigado pelo seu feedback!