Pass by Value i Java
Stryg for at vise menuen
Forståelse af Pass by Value i Java
I Java videregives alle metodeargumenter som værdier. Det betyder, at når du sender en variabel til en metode, kopierer Java værdien af denne variabel og sender kopien til metoden. Metoden arbejder derefter med denne kopi, ikke den oprindelige variabel fra din kode.
- Når du sender en primitiv type (såsom
int,doubleellerboolean), modtager metoden en kopi af den faktiske værdi. Ændringer foretaget på parameteren inde i metoden påvirker ikke den oprindelige variabel uden for metoden; - Når du sender en objektreference (som et array eller en brugerdefineret klasse), sender Java stadig værdien af referencen (hukommelsesadressen). Metoden modtager en kopi af denne reference, så både den oprindelige og metodeparameteren peger på det samme objekt. Du kan ændre objektets interne tilstand inde i metoden, men hvis du tildeler et nyt objekt til parameteren, påvirkes den oprindelige reference uden for metoden ikke.
Denne adfærd er vigtig for at forudsige, hvordan dine variabler ændrer sig—eller forbliver de samme—efter kald af metoder i 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); } }
I denne kode modtager metoden changeValue en kopi af variablen number, fordi Java bruger pass by value.
Ændring af num inde i metoden påvirker ikke number i main, så dens værdi forbliver 10 efter metodekaldet.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat