พารามิเตอร์การส่งผ่านของฟังก์ชั่นใน Java
สรุป:
1. เมื่อผ่านวัตถุ (อ้างอิงไปยังวัตถุ) เป็นพารามิเตอร์การอ้างอิงจะถูกส่งผ่าน (เทียบเท่ากับตัวชี้) กล่าวอีกนัยหนึ่งการดัดแปลงที่ทำกับพารามิเตอร์ในฟังก์ชันจะส่งผลกระทบต่อวัตถุต้นฉบับ
2. เมื่อผ่านประเภทดั้งเดิมหรือชุดการห่อของประเภทดั้งเดิมเป็นพารามิเตอร์ค่าจะถูกส่งผ่าน กล่าวอีกนัยหนึ่งการปรับเปลี่ยนที่ทำกับพารามิเตอร์ในฟังก์ชันจะไม่ส่งผลกระทบต่อตัวแปรดั้งเดิม
3. เมื่อผ่านอาร์เรย์ (อ้างอิงอาร์เรย์)) เป็นพารามิเตอร์การอ้างอิงจะถูกส่งผ่าน (เทียบเท่ากับตัวชี้) กล่าวอีกนัยหนึ่งการปรับเปลี่ยนที่ทำกับพารามิเตอร์ในฟังก์ชั่นจะส่งผลกระทบต่ออาร์เรย์ดั้งเดิม
4. เมื่อประเภทสตริง (อ้างอิง) ถูกส่งเป็นพารามิเตอร์มันเป็นข้อมูลอ้างอิง อย่างไรก็ตามเมื่อมีการดัดแปลงสตริงใด ๆ วัตถุสตริงใหม่จะถูกสร้างขึ้นและค่าของวัตถุสตริงต้นฉบับจะไม่ถูกแก้ไข (อย่างไรก็ตามคุณสามารถกำหนดการอ้างอิงไปยังวัตถุใหม่ให้กับการอ้างอิงดั้งเดิมสิ่งนี้ทำให้ผู้คนมีปรากฏการณ์ผิวเผินที่วัตถุดั้งเดิมเปลี่ยนไป แต่มันไม่ได้เปลี่ยนแปลง แต่การอ้างอิงดั้งเดิมนั้นได้ชี้ไปที่วัตถุใหม่)
Package Stringtest; คลาส A {int a = 1; Char B = 'A'; สาธารณะ a () {} สาธารณะ A (int _a, char _b) {this.a = _a; this.b = _b; } สตริงสาธารณะ toString () {return "a ="+this.a+", b ="+this.b; }} การอ้างอิงคลาสสาธารณะ {สาธารณะคงที่ A Changea (คลาส) {class.a = 2; class.b = 'b'; ชั้นเรียนกลับ; } String String Public String Changestring (String Str) {System.out.println (str.hashCode ()); str = str.tolowercase (); System.out.println (str.hashcode ()); return str; } public Static Int ChangeInt (int a) {a = a+1; กลับ A; } public Static Integer Changeinteger (จำนวนเต็ม A) {a = New Integer (9); กลับ A; } public Static int [] ChangeIntArray (int a []) {a [0] = 10; กลับ A; } โมฆะคงที่สาธารณะ printArray (int a []) {สำหรับ (int i = 0; i <a.length; i ++) {system.out.print (a [i]+""); } system.out.println (); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// วัตถุที่กำหนดเองผ่านการอ้างอิง a = new a (); a b = changea (a); System.out.println (a); System.out.println (a); System.out.println (b); System.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- พารามิเตอร์ (แต่ค่าสตริงไม่สามารถเปลี่ยนแปลงได้แต่ละค่าสตริงที่แก้ไขแล้วจะสร้างวัตถุสตริงใหม่เพื่อบันทึกค่าที่แก้ไขแล้วและค่าดั้งเดิมจะไม่เปลี่ยน) สตริง str1 = "huhualiang"; System.out.println (STR1); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ System.out.println (inta); System.out.println (INTB); System.out.println (INTB); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - [] Arrayb = ChangeIntarray (Arraya); ผลการทำงาน:
a = 2, b = b
a = 2, b = b
-
711139030
711139030
226046678
226046678
Huhualiang
ฮัวอัลเจียนัง
-
8
9
-
1
9
-
10 1 2 3
10 1 2 3
ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!