Method Signatures
แนะนำใหม่| English | ความหมาย |
|---|---|
| method/ˈmeθəd/ | เมทโด้ |
| signature/ˈsɪɡnɪtʃə/ | ลายเซ็นเมทโด้ |
| parameter/pəˈræmɪtə/ | พารามิเตอร์ |
| argument/ˈɑːɡjuːmənt/ | อาร์กิวเมนต์ |
| overloading/ˌəʊvəˈləʊdɪŋ/ | การโอเวอร์โหลด |
ชื่อติดป้ายของวิธี
- วิธีคือบล็อกโค้ดที่มีชื่อที่คุณสามารถเรียกใช้เพื่อทำงานบางอย่างได้
- ลายเซ็นของมันคือส่วนที่ระบุตัวตน: ชื่อบวกกับ รายการพารามิเตอร์
- ตัวอย่างลายเซ็น:
max(int a, int b)— ชื่อmax, พารามิเตอร์intจำนวนสองตัว - ลายเซ็นคือสิ่งที่Javaใช้รู้ว่าคุณหมายถึง วิธีไหนเมื่อคุณเรียกมัน
พารามิเตอร์และอาร์กิวเมนต์
- พารามิเตอร์คือตัวแปรในนิยามของวิธี:
int aในmax(int a, int b) - Argument คือค่าจริงที่คุณส่งเข้าไปเมื่อเรียกใช้:
max(5, 9)ส่งเข้า5และ9. - อาร์กิวเมนต์จะถูกจับคู่กับพารามิเตอร์ ตามตำแหน่ง จากซ้ายไปขวา
- ภายในวิธี พารามิเตอร์จะเก็บสำเนาของอาร์กิวเมนต์
ประเภทการคืนค่า
- ประเภทการคืนค่าของวิธีบอกชนิดของค่าที่มันจะส่งกลับ
public int max(int a, int b)ส่งกลับค่าประเภทint; เมทอดประเภทvoidส่งกลับ ไม่มีอะไร- ใช้
return value;เพื่อส่งผลลัพธ์กลับไปยังผู้เรียก - ประเภทการคืน值是ส่วนหนึ่งของหัวข้อแต่ ไม่ใช่ ส่วนของลายเซ็น
การโอเวอร์โหลด: ชื่อเดียวกัน ลายเซ็นต่างกัน
- Javaอนุญาตให้ โอเวอร์โหลด: มีหลายวิธีที่มี ชื่อเดียวกัน แต่ รายการพารามิเตอร์ต่างกัน
print(int x)และprint(String s)แยกกัน — ประเภทอาร์กิวเมนต์บอกความแตกต่างให้- คอมไพเลอร์จะเลือกเวอร์ชันwhose ลายเซ็นตรงกับอาร์กิวเมนต์ของคุณ
- การโอเวอร์โหลดใช้ได้ก็ต่อเมื่อ ลายเซ็นต่างกัน (ประเภทการคืนค่าเพียงอย่างเดียวไม่เพียงพอ)
ลายเซ็นคือชื่อ + รายการพารามิเตอร์ — ประเภทการคืนค่าไม่ใช่ส่วนหนึ่งของมัน นั่นคือเหตุผลที่คุณไม่สามารถโอเวอร์โหลดวิธีสองวิธีที่ต่างกัน เฉพาะ ประเภทการคืนค่าได้ พารามิเตอร์อยู่ในนิยาม; อาร์กิวเมนต์คือค่าที่คุณส่ง ซึ่งจับคู่ ตามตำแหน่ง การส่งจำนวนหรือประเภทอาร์กิวเมนต์ผิดจะเป็นข้อผิดพลาดในการคอมไพล์
การเรียก max:
- นิยาม:
public int max(int a, int b) { return a > b ? a : b; } - การเรียกใช้:
int m = max(5, 9);→ argument5→ parametera,9→b. - วิธีนี้คืนค่า
9เก็บไว้ในm
ลายเซ็นของวิธีคือ ชื่อบวกรายการพารามิเตอร์ (ประเภทการคืนค่าไม่ใช่ส่วนหนึ่งของมัน) พารามิเตอร์คือตัวแปรในนิยาม; อาร์กิวเมนต์คือค่าที่ถูกส่งตอนเรียกใช้ ซึ่งจับคู่ ตามตำแหน่ง การโอเวอร์โหลดอนุญาตให้มีชื่อเดียวกันพร้อมรายการพารามิเตอร์ที่แตกต่างกัน โดยแยกแยะผ่านอาร์กิวเมนต์
การเรียกเมทودคืนค่าออกมา
Arguments 5 และ 9 จับคู่กับพารามิเตอร์ a และ b; เมทودคืนค่า 9
Signature ของเมทอ ดประกอบด้วย...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Signature = name + parameters; return type ไม่ใช่ส่วนหนึ่งของมัน
ใน max(5, 9), ค่า 5 และ 9 คือ...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Arguments คือค่าที่ถูกส่ง; parameters อยู่ใน definition
คุณสามารถ overload เมทอ ดสองตัวที่ต่างกันแค่ return type ได้
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Return type ไม่ใช่ส่วนหนึ่งของ signature ดังนั้นจึงไม่อนุญาต
การมีเมทอ ดหลายตัวที่มีชื่อกันแต่ต่าง parameter list เรียกว่า...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Overloading = ชื่อเดียวกัน, parameter list ต่างกัน
Arguments ถูกจับคู่กับพารามิเตอร์ตาม ___ (หนึ่งคำ) จากซ้ายไปขวา
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Positional matching: argument แรก → parameter แรก