ด้านล่างเราได้จัดเรียงและสรุปตามวิธีการเรียกของ Java และทดสอบรหัสการโทรที่เกี่ยวข้อง มาเรียนรู้ด้านล่าง
มีวิธีการ Java หลักสามประเภท:
หนึ่งคือวิธีการคงที่
วิธีนี้ได้รับการแก้ไขด้วยแบบคงที่และวิธีนี้ไม่จำเป็นต้องผูกพันกับวัตถุเฉพาะ ประการที่สองคือวิธีทั่วไปที่ไม่มีการดัดแปลงแบบคงที่ ประการที่สามคือวิธีการก่อสร้างซึ่งส่วนใหญ่ใช้เพื่อเริ่มต้นชั้นเรียน
วิธีการคงที่สามารถเรียกใช้โดยใช้วัตถุที่กำหนดและอินสแตนซ์หรือใช้ชื่อคลาสโดยตรง
วิธีการอินสแตนซ์จะต้องเรียกใช้โดยใช้วัตถุที่กำหนดและอินสแตนซ์
Class A {// วิธีการคงที่คุณสามารถเรียกได้โดยตรงโดยใช้ชื่อคลาสและชี้ชื่อวิธีการเช่น A.SayHello () โมฆะคงที่สาธารณะ Sayshello () {System.out.println ("เอาท์พุทวิธีการคงที่: Hello"); } // วิธีการอินสแตนซ์คุณต้องสร้างอินสแตนซ์ของคลาสก่อนที่คุณจะเรียก A = new A (); A.SayWorld (); โมฆะสาธารณะ SaysWorld () {System.out.println ("อินสแตนซ์เมธอดเอาท์พุทสำเร็จ: โลก"); }} คลาสสาธารณะ myDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {a a = null; ลอง {a.sayhello (); // การเรียกวิธีการคงที่} catch (nullpointerexception e) {system.out.println ("ข้อยกเว้นตัวชี้โมฆะเกิดขึ้นเมื่อเรียกวิธีการคงที่"); } ลอง {a.sayworld (); // การเรียกใช้วิธีการอินสแตนซ์} catch (nullpointerexception e) {system.out.println ("ข้อยกเว้นตัวชี้ null เกิดขึ้นเมื่อเรียกเมธอดอินสแตนซ์"); - เอาต์พุตทดสอบ:
เอาท์พุทวิธีการแบบคงที่สำเร็จ: สวัสดี
ข้อยกเว้นตัวชี้โมฆะเกิดขึ้นเมื่อเรียกวิธีการอินสแตนซ์
Java เรียกรหัสวิธีการแบบไดนามิกในชั้นเรียน
ใช้ math.class.getDeclaredMethod ("sin", double.type); ในการเข้าถึงวิธีการที่ระบุโดยที่ "บาป" หมายถึงชื่อของวิธีการที่จะเข้าถึงคือบาปและ double.type หมายถึงประเภทของพารามิเตอร์รายการเป็นสองเท่า
นำเข้า java.lang.reflect.method; ระดับสาธารณะ Dongtai {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ลอง {system.out.println ("เรียกวิธีการคงที่ sin () ของคลาสคณิตศาสตร์"); วิธี sin = math.class.getDeclaredMethod ("sin", double.type); double sin1 = (double) sin.invoke (null, จำนวนเต็มใหม่ (1)); System.out.println ("ค่าไซน์ของ 1 คือ:" + sin1); System.out.println ("เรียกวิธีที่ไม่คงที่เท่ากับ () ที่เรียกคลาสสตริง"); วิธี Equals = string.class.getDeclaredMethod ("เท่ากับ", Object.class); บูลีน mrsoft = (บูลีน) Equals.invoke (สตริงใหม่ ("Tomorrow Technology"), "Tomorrow Technology"); System.out.println ("เป็นเทคโนโลยีสตริงในวันพรุ่งนี้:" + MrSoft); } catch (exception e) {e.printstacktrace (); -ผลลัพธ์ผลลัพธ์หลังจากทำงาน