Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Arvon Välitys Javassa | Osio
Olennaiset Java-Käsitteet

bookArvon Välitys Javassa

Pyyhkäise näyttääksesi valikon

Pass by Value -periaate Javassa

Javassa kaikki metodin argumentit välitetään arvon mukaan. Tämä tarkoittaa, että kun välität muuttujan metodille, Java kopioi kyseisen muuttujan arvon ja lähettää kopion metodille. Metodi käsittelee tätä kopiota, ei alkuperäistä muuttujaa koodissasi.

  • Kun välität primitivityypin (kuten int, double tai boolean), metodi saa kopion varsinaisesta arvosta. Kaikki muutokset, joita tehdään parametrille metodin sisällä, eivät vaikuta alkuperäiseen muuttujaan metodin ulkopuolella;
  • Kun välität olioviitteen (esimerkiksi taulukon tai oman luokan), Java välittää silti viitteen arvon (muistiosoitteen). Metodi saa kopion tästä viitteestä, joten sekä alkuperäinen että metodin parametri osoittavat samaan olioon. Voit muuttaa olion sisäistä tilaa metodin sisällä, mutta jos asetat parametrille uuden olion, alkuperäinen viite metodin ulkopuolella ei muutu.

Tämä toimintatapa on tärkeä, jotta voit ennustaa, miten muuttujasi muuttuvat tai pysyvät samoina metodikutsujen jälkeen Javassa.

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); } }

Tässä koodissa changeValue-metodi vastaanottaa muuttujan number kopion, koska Java käyttää arvon mukaan välitystä.
Muuttujan num muuttaminen metodin sisällä ei vaikuta number-muuttujaan main-metodissa, joten sen arvo säilyy 10 metodikutsun jälkeen.

question mark

Mitä tulostuu, kun tämä koodi suoritetaan?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 10

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 10
some-alt