พารามิเตอร์ตัวแปร
พารามิเตอร์ตัวแปรเป็นวิธีที่สามารถรับพารามิเตอร์จำนวนเท่าใดก็ได้! ตัวอย่างเช่น: fun (), ความสนุก (1), ความสนุก (1,1), ความสนุก (1,1,1) คุณอาจคิดว่านี่เป็นวิธีที่โอเวอร์โหลด แต่นี่ไม่ใช่การโอเวอร์โหลด ลองคิดดูว่ามีวิธีการที่สามารถใช้งานได้มากเกินไปโดยการโอเวอร์โหลดและวิธีการสนุก () สามารถผ่านพารามิเตอร์จำนวนใดก็ได้ คุณสามารถโอเวอร์โหลดวิธีการมากมายได้หรือไม่?
2.1 การกำหนดวิธีพารามิเตอร์ตัวแปร
Public Voidfun (int … arr) {}
ประเภทพารามิเตอร์ของวิธีการด้านบน fun () คือ int ... โดยที่ "... " ไม่ใช่จุดไข่ปลา แต่เป็นวิธีการกำหนดประเภทพารามิเตอร์ พารามิเตอร์ arr เป็นประเภทพารามิเตอร์ตัวแปร คุณสามารถเข้าใจรหัสข้างต้นเป็น: โมฆะสาธารณะสนุก (int [] arr)
สาธารณะ int sum1 (int [] arr) {int sum = 0; สำหรับ (int i = 0; i <arr.length; i ++) {sum+= arr [i]; } return sum; } สาธารณะ int sum2 (int ... arr) {int sum = 0; สำหรับ (int i = 0; i <arr.length; i ++) {sum+= arr [i]; } return sum; -คุณอาจคิดว่า "int []" และ "int ... " ไม่แตกต่างกัน แต่ "int ... " เป็นเพียง "int ... " เป็นวิธีใหม่ในการกำหนดพารามิเตอร์อาร์เรย์ จากนั้นฉันควรแสดงความยินดีกับคุณ! ถูกต้องใช่แล้ว! แต่โปรดทราบว่าเฉพาะ int ... สามารถใช้แทน int [] ในพารามิเตอร์ที่เป็นทางการของวิธีการ
2.2 วิธีการโทรด้วยพารามิเตอร์ตัวแปร
การโทรไปยังทั้งสองวิธี sum1 () และ sum2 ():
sum1 (int ใหม่ [] {1,2,3}); sum2 (int ใหม่ [] {1,2,3}); สิ่งนี้ดูไม่แตกต่าง! แต่มีอีกวิธีหนึ่งในการโทรหา SUM2:
sum2 (); sum2 (1); sum2 (1,2); sum2 (1,2,3);
ดูเหมือนว่าการใช้พารามิเตอร์จำนวนเท่าใดก็ได้เพื่อเรียกใช้เมธอด sum2 () ซึ่งเป็นประโยชน์ของการเรียกใช้วิธีการที่มีพารามิเตอร์ variadic
2.3 คอมไพเลอร์ "การประมวลผลรอง"
ผลลัพธ์ "การประมวลผลทุติยภูมิ" ของคำจำกัดความของคอมไพเลอร์ของวิธี SUM2 คือ:
สาธารณะ int sum2 (int [] arr) {int sum = 0; สำหรับ (int i = 0; i <arr.length; i ++) {sum+= arr [i]; } return sum; -นั่นคือแก้ไขประเภท "int ... " เป็น "int []"
ผลการโหลดกำลังสองของการโทรของคอมไพเลอร์ไปยังวิธี SUM2 คือ:
sum2 (int ใหม่ [0]); sum2 (int ใหม่ [] {1}); sum2 (int ใหม่ [] {1, 2}); sum2 (int ใหม่ [] {1, 2, 3}); สรุป: พารามิเตอร์ตัวแปรเป็นประเภทอาร์เรย์จริง ๆ แต่จะสะดวกกว่าเมื่อใช้วิธีการโทร คอมไพเลอร์ช่วยให้เราใส่พารามิเตอร์จริงหลายตัวลงในอาร์เรย์และส่งผ่านไปยังพารามิเตอร์ที่เป็นทางการ
2.4 ข้อ จำกัด ของวิธีการพารามิเตอร์ตัวแปร
l วิธีสามารถมีพารามิเตอร์ที่ไม่แน่นอนได้เพียงหนึ่งเดียวเท่านั้น
l พารามิเตอร์ตัวแปรจะต้องเป็นพารามิเตอร์สุดท้ายของวิธีการ
ข้างต้นเป็นเนื้อหาเต็มรูปแบบของการสนทนาสั้น ๆ ของพารามิเตอร์ตัวแปรใน Java ที่นำเสนอโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคนและสนับสนุน wulin.com เพิ่มเติม ~