Rumah Java javaTutorial Kajian mendalam tentang kaedah lulus parameter di Jawa: prinsip dan mekanisme lulus nilai dan lulus rujukan

Kajian mendalam tentang kaedah lulus parameter di Jawa: prinsip dan mekanisme lulus nilai dan lulus rujukan

Jan 30, 2024 am 08:05 AM
lulus dengan rujukan Lulus nilai

Kajian mendalam tentang kaedah lulus parameter di Jawa: prinsip dan mekanisme lulus nilai dan lulus rujukan

Teroka mekanisme lulus parameter dalam Java: cara hantaran nilai dan hantaran rujukan berfungsi

Java ialah bahasa pengaturcaraan berorientasikan objek berdasarkan kelas dan objek, dan ia mempunyai mekanisme lulus parameter yang berkuasa dan fleksibel. Di Java, hantaran parameter boleh dibahagikan kepada dua kaedah: hantaran nilai dan hantaran rujukan. Artikel ini akan menyelidiki cara kedua-dua mekanisme lulus parameter ini berfungsi dan memberikan contoh kod khusus.

Pemindahan nilai merujuk kepada menyalin nilai parameter sebenar kepada parameter formal Perubahan kepada parameter sebenar oleh parameter formal tidak akan menjejaskan parameter sebenar itu sendiri. Di Java, semua jenis data asas (seperti int, float, boolean, dll.) melepasi parameter mengikut nilai.

Mari kita gunakan contoh mudah untuk menggambarkan mekanisme penghantaran nilai:

public class ValuePassingExample {
    public static void main(String[] args) {
        int num = 10;
        System.out.println("Before calling method: " + num);
        
        changeValue(num);
        
        System.out.println("After calling method: " + num);
    }
    
    public static void changeValue(int n) {
        n = 20;
        System.out.println("Inside Method: " + n);
    }
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan kaedah changeValue yang menerima parameter integer n</ code> dan tukar nilainya kepada 20. Dalam kaedah <code>main, kami mencipta pembolehubah integer num dan memulakannya kepada 10. Kemudian, kami memanggil kaedah changeValue dan menyerahkannya num sebagai parameter. changeValue方法,它接受一个整数参数n并将其值改为20。在main方法中,我们创建了一个整数变量num并将其初始化为10。然后,我们调用了changeValue方法,并将num作为参数传递给它。

输出结果:

Before calling method: 10
Inside Method: 20
After calling method: 10
Salin selepas log masuk

可以看到,尽管在changeValue方法中我们将n的值改为20,但在方法调用结束后,num的值仍然是10。这是因为在Java中,值传递是通过将实际参数的值复制给形式参数来实现的,因此对形式参数的任何改变都不会影响到实际参数本身。

接下来,我们将讨论引用传递的机制。引用传递是指传递对象的引用,使得实际参数和形式参数指向内存中同一个对象。在Java中,除了基本数据类型外,其他所有类型(如数组和对象)都是通过引用传递来传递参数的。

让我们使用一个示例来说明引用传递的机制:

public class ReferencePassingExample {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        System.out.println("Before calling method: " + Arrays.toString(arr));
        
        changeValue(arr);
        
        System.out.println("After calling method: " + Arrays.toString(arr));
    }
    
    public static void changeValue(int[] array) {
        array[0] = 10;
        System.out.println("Inside Method: " + Arrays.toString(array));
    }
}
Salin selepas log masuk

在上面的代码中,我们定义了一个changeValue方法,它接受一个整数数组作为参数,并将数组的第一个元素的值改为10。在main方法中,我们创建了一个包含三个整数的数组arr,并将其传递给changeValue方法。

输出结果:

Before calling method: [1, 2, 3]
Inside Method: [10, 2, 3]
After calling method: [10, 2, 3]
Salin selepas log masuk

可以看到,尽管我们在changeValue方法中改变了数组的第一个元素的值,但在方法调用结束后,arr

Hasil output:

rrreee

Anda boleh melihat bahawa walaupun kami menukar nilai n kepada 20 dalam kaedah changeValue, selepas panggilan kaedah tamat, nilai num masih 10. Ini kerana dalam Java, penghantaran nilai dicapai dengan menyalin nilai parameter sebenar kepada parameter formal, jadi sebarang perubahan pada parameter formal tidak akan menjejaskan parameter sebenar itu sendiri.

Seterusnya, kita akan membincangkan mekanisme reference passing. Melewati rujukan bermaksud menghantar rujukan kepada objek supaya parameter sebenar dan parameter formal menghala ke objek yang sama dalam ingatan. Di Java, kecuali jenis data asas, semua jenis lain seperti tatasusunan dan objek melepasi parameter melalui rujukan. 🎜🎜Mari kita gunakan contoh untuk menggambarkan mekanisme penghantaran rujukan: 🎜rrreee🎜Dalam kod di atas, kami mentakrifkan kaedah changeValue yang menerima tatasusunan integer sebagai parameter dan menukar nilai The satu elemen ditukar kepada 10. Dalam kaedah utama, kami mencipta tatasusunan arr yang mengandungi tiga integer dan menghantarnya kepada kaedah changeValue. 🎜🎜Hasil keluaran: 🎜rrreee🎜Anda boleh melihat bahawa walaupun kami menukar nilai elemen pertama tatasusunan dalam kaedah changeValue, selepas panggilan kaedah tamat, arr masih menunjuk kepada tatasusunan yang sama, dan nilai elemen pertama tatasusunan juga telah diubah. Ini kerana dalam hantaran rujukan, parameter sebenar dan parameter formal menghala ke objek yang sama, jadi sebarang perubahan pada parameter formal akan menjejaskan objek yang dirujuk oleh parameter sebenar. 🎜🎜Ringkasnya, mekanisme lulus parameter dalam Java boleh dibahagikan kepada hantaran nilai dan hantaran rujukan. Meluluskan nilai berfungsi untuk semua jenis data asas, sementara menghantar melalui rujukan berfungsi untuk semua jenis data bukan asas. Dalam lulus nilai, nilai parameter sebenar disalin ke parameter formal, dan sebarang perubahan pada parameter formal tidak akan menjejaskan parameter sebenar itu sendiri, dalam lulus rujukan, parameter sebenar dan parameter formal menghala ke objek yang sama , dan sebarang perubahan pada parameter formal tidak akan menjejaskan parameter sebenar itu sendiri. Perubahan akan mempengaruhi objek yang dirujuk oleh parameter sebenar. 🎜🎜Dengan mempunyai pemahaman yang mendalam tentang cara kedua-dua mekanisme lulus parameter ini berfungsi, kami boleh lebih memahami panggilan kaedah dan operasi objek dalam Java dan menggunakannya dengan betul dalam pengaturcaraan. 🎜

Atas ialah kandungan terperinci Kajian mendalam tentang kaedah lulus parameter di Jawa: prinsip dan mekanisme lulus nilai dan lulus rujukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP Apr 16, 2024 pm 02:39 PM

Panggilan fungsi dalam PHP boleh dihantar melalui nilai atau rujukan. Lalai adalah untuk lulus mengikut nilai, fungsi menerima salinan parameter, dan pengubahsuaian padanya tidak menjejaskan nilai asal. Rujukan lulus diisytiharkan dengan menambahkan simbol & sebelum parameter, dan fungsi tersebut secara langsung mengubah suai pembolehubah yang diluluskan. Melewati rujukan berguna apabila anda memerlukan fungsi untuk mengubah suai pembolehubah luaran, seperti elemen tatasusunan.

Adakah terdapat rujukan lewat dalam bahasa go? Adakah terdapat rujukan lewat dalam bahasa go? Dec 20, 2022 pm 12:09 PM

Tidak. Go tidak mempunyai pembolehubah rujukan, jadi tiada rujukan lulus semasa memanggil fungsi dalam bahasa Go. Setiap pembolehubah yang ditakrifkan dalam program Go menduduki lokasi memori yang unik Tidak mungkin untuk mencipta dua pembolehubah yang berkongsi lokasi memori yang sama adalah mungkin untuk mencipta dua pembolehubah yang menghala ke lokasi memori yang sama, tetapi ini tidak sama dengan dua pembolehubah berkongsi memori yang sama Lokasinya berbeza.

Bagaimana untuk memahami kaedah lulus nilai dengan betul dalam PHP Bagaimana untuk memahami kaedah lulus nilai dengan betul dalam PHP Mar 08, 2024 pm 03:30 PM

Cara memahami kaedah lulus nilai dengan betul dalam PHP PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan Web, dan kaedah lulus parameter dalam PHP terutamanya termasuk lulus nilai dan lulus rujukan. Dan memahami bagaimana nilai dihantar dalam PHP adalah penting untuk menulis kod yang cekap. Artikel ini akan membincangkan kaedah lulus nilai dalam PHP secara terperinci dan menggunakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. Konsep asas kaedah lulus nilai adalah untuk menyalin nilai pembolehubah dan menghantarnya kepada fungsi atau kaedah Operasi pada nilai dalam fungsi tidak akan menjejaskannya.

Analisis terperinci tentang perbezaan antara hantaran nilai dan hantaran rujukan di Jawa Analisis terperinci tentang perbezaan antara hantaran nilai dan hantaran rujukan di Jawa Jan 30, 2024 am 08:11 AM

Analisis mendalam tentang perbezaan antara lulus nilai dan lulus rujukan dalam Java Dalam pengaturcaraan Java, kita sering menghadapi situasi lulus parameter, dan terdapat dua cara lulus parameter: lulus nilai dan lulus rujukan. Kedua-dua kaedah penghantaran ini mempunyai ciri dan senario aplikasi yang berbeza di Jawa. Pass-by-Value merujuk kepada menghantar nilai parameter sebenar kepada parameter formal apabila fungsi dipanggil Pengubahsuaian kepada parameter formal dalam fungsi tidak akan menjejaskan nilai parameter sebenar. Rujukan lewat

Apakah nilai lulus dan rujukan lulus Apakah nilai lulus dan rujukan lulus Dec 15, 2023 pm 03:03 PM

Melepasi nilai adalah untuk menghantar salinan parameter kepada fungsi, jadi fungsi menerima salinan nilai parameter, bukan parameter itu sendiri Sebarang pengubahsuaian pada parameter di dalam fungsi hanya akan mempengaruhi salinan ini dan bukan pembolehubah asal. nilai. Pass by reference adalah untuk menghantar alamat atau rujukan parameter kepada fungsi. Ini bermakna bahawa fungsi menerima rujukan kepada data asal, bukan salinan data. Sebarang pengubahsuaian pada parameter di dalam fungsi akan menjejaskan data asal secara langsung. Kedua-dua kaedah penyampaian ini mempunyai aplikasi, kelebihan dan keburukan tersendiri dalam bahasa pengaturcaraan dan senario yang berbeza.

Perbezaan antara penunjuk struct dan pemindahan nilai struct dalam fungsi Golang Perbezaan antara penunjuk struct dan pemindahan nilai struct dalam fungsi Golang May 31, 2024 pm 07:43 PM

Dalam Go, parameter fungsi boleh dihantar mengikut nilai atau dengan penuding. Lulus nilai memberikan salinan, dan pengubahsuaian pada salinan tidak akan menjejaskan nilai asal, hantaran penunjuk melepasi alamat, dan pengubahsuaian pada kandungan akan ditunjukkan dalam nilai asal. Dalam amalan, hantaran penunjuk boleh digunakan untuk mengoptimumkan kod, contohnya semasa mengisih kepingan. Memilih kaedah penghantaran yang betul adalah penting untuk mengoptimumkan kod anda dan meningkatkan prestasi.

Apakah perbezaan antara lulus dengan nilai dan lulus dengan rujukan dalam java Apakah perbezaan antara lulus dengan nilai dan lulus dengan rujukan dalam java Jan 16, 2024 pm 04:18 PM

Perbezaan antara pemindahan nilai Java dan pemindahan rujukan: 1. Pemindahan jenis data asas 2. Pemindahan objek 3. Pengubahsuaian penunjuk rujukan; Pengenalan terperinci: 1. Pemindahan jenis data asas Untuk jenis data asas, Java menggunakan pemindahan nilai Apabila pembolehubah jenis data asas dihantar sebagai parameter kepada kaedah, nilai pembolehubah sebenarnya dipindahkan, bukan nilai. daripada pembolehubah. Rujukannya, yang bermaksud bahawa pengubahsuaian kepada parameter ini dalam kaedah tidak akan menjejaskan nilai pembolehubah asal 2. Pemindahan objek, untuk rujukan objek, keadaan adalah berbeza, dsb.

Perbezaan penting antara lulus dengan nilai dan lulus dengan rujukan dalam C++ Perbezaan penting antara lulus dengan nilai dan lulus dengan rujukan dalam C++ Apr 12, 2024 pm 12:00 PM

Perbezaan antara lulus nilai dan lulus rujukan dalam C++: lulus nilai mencipta salinan parameter dan tidak menjejaskan pembolehubah asal lulus rujukan secara langsung mengendalikan parameter, dan pengubahsuaian dicerminkan dalam pembolehubah asal. Kes praktikal: pertukaran dua nilai integer tidak akan bertukar, tetapi lulus melalui rujukan akan.

See all articles