Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Passaggio per Valore in Java | Sezione
Concetti Essenziali di Java

bookPassaggio per Valore in Java

Scorri per mostrare il menu

Comprendere il Passaggio per Valore in Java

In Java, tutti gli argomenti dei metodi vengono passati per valore. Questo significa che quando si passa una variabile a un metodo, Java copia il valore di quella variabile e invia la copia al metodo. Il metodo lavora quindi con questa copia, non con la variabile originale presente nel codice.

  • Quando si passa un tipo primitivo (come int, double o boolean), il metodo riceve una copia del valore effettivo. Qualsiasi modifica apportata al parametro all'interno del metodo non influisce sulla variabile originale al di fuori del metodo;
  • Quando si passa un riferimento a oggetto (come un array o una classe personalizzata), Java passa comunque il valore del riferimento (l'indirizzo di memoria). Il metodo riceve una copia di questo riferimento, quindi sia la variabile originale che il parametro del metodo puntano allo stesso oggetto. È possibile modificare lo stato interno dell'oggetto all'interno del metodo, ma se si assegna un nuovo oggetto al parametro, il riferimento originale al di fuori del metodo non viene influenzato.

Questo comportamento è importante per prevedere come le variabili cambiano—o rimangono invariate—dopo la chiamata ai metodi in Java.

Main.java

Main.java

copy
123456789101112131415
package 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); } }

In questo codice, il metodo changeValue riceve una copia della variabile number perché Java utilizza il passaggio per valore.
Modificare num all'interno del metodo non influisce su number in main, quindi il suo valore rimane 10 dopo la chiamata al metodo.

question mark

Cosa viene stampato eseguendo questo codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 10
some-alt