ในบทความ "From Hello World to Object-Oriented" ใน Basic Java Tutorial เรามีความเข้าใจเบื้องต้นเกี่ยวกับ Object สมาชิกข้อมูลในวัตถุแสดงถึงสถานะของวัตถุ ออบเจ็กต์สามารถดำเนินการวิธีการที่แสดงถึงการกระทำเฉพาะได้
นอกจากนี้เรายังได้เรียนรู้เกี่ยวกับชั้นเรียนอีกด้วย วัตถุประเภทเดียวกันอยู่ในประเภทเดียวกัน เราสามารถกำหนดคลาสและใช้คำจำกัดความนั้นเพื่อสร้างวัตถุได้
มาเจาะลึกวัตถุกันดีกว่า เรียนรู้รายละเอียดเกี่ยวกับวิธีการและสมาชิกข้อมูลใน Java
การเรียกสมาชิกข้อมูลของวัตถุเดียวกัน
วิธีการสามารถเรียกสมาชิกของข้อมูลของวัตถุ ตัวอย่างเช่น ด้านล่างนี้เราได้เพิ่มเมธอด getHeight() ให้กับคลาส Human วิธีการนี้ส่งกลับค่าของสมาชิกข้อมูลความสูง:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
Human aPerson = มนุษย์ใหม่ ();
System.out.println(aPerson.getHeight());
-
-
คลาสมนุษย์
-
*อุปกรณ์เสริม
-
int getHeight ()
-
กลับ this.height;
-
ความสูงอินท์;
-
เราได้เพิ่มเมธอด getHeight เมธอดนี้มีค่าส่งคืนเป็นประเภท int Return ใช้ใน Java เพื่อส่งคืนค่า
หมายเหตุสิ่งนี้ ซึ่งใช้เพื่ออ้างถึงออบเจ็กต์นั้นเอง เมื่อเราสร้างอินสแตนซ์ aPerson สิ่งนี้จะแสดงถึงออบเจ็กต์ aPerson this.height หมายถึง ความสูงของบุคคล
นี่เป็นข้อโต้แย้งโดยนัย เมื่อมีการเรียกเมธอด แม้ว่ารายการพารามิเตอร์ของเมธอดจะไม่รวมสิ่งนี้ไว้ แต่ Java จะ "ส่งผ่านพารามิเตอร์นี้ไปยังเมธอด" อย่างเงียบๆ
(มีวิธีพิเศษบางอย่างที่ไม่ผ่านโดยปริยายเราจะเห็นในภายหลัง)
ไม่จำเป็น วิธีข้างต้นสามารถเขียนได้เป็น:
คัดลอกรหัสรหัสดังต่อไปนี้:
-
*อุปกรณ์เสริม
-
int getHeight ()
-
ความสูงกลับ;
-
Java จะกำหนดด้วยตัวเองว่าความสูงเป็นสมาชิกข้อมูลในคลาส แต่การใช้สิ่งนี้จะชัดเจนยิ่งขึ้น
เรายังเห็น /** comment */ วิธีการเพิ่มความคิดเห็นด้วย
รายการพารามิเตอร์วิธีการ
คำจำกัดความของเมธอดใน Java นั้นคล้ายคลึงกับฟังก์ชันในภาษา C วิธีการ Java ยังสามารถรับรายการอาร์กิวเมนต์ (รายการอาร์กิวเมนต์) ในวงเล็บหลังชื่อวิธีการ ต่อไปเราจะกำหนดวิธีการ growHeight() หน้าที่ของวิธีนี้คือการเพิ่มความสูงของบุคคล:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
Human aPerson = มนุษย์ใหม่ ();
System.out.println(aPerson.getHeight());
aPerson.growHeight(10);
System.out.println(aPerson.getHeight());
-
-
คลาสมนุษย์
-
-
*อุปกรณ์เสริม
-
int getHeight ()
-
กลับ this.height;
-
-
* ผ่านการโต้แย้ง
-
เป็นโมฆะ growHeight (int h)
-
this.height = this.height + h;
-
ความสูงอินท์;
-
ใน growHeight() h คือพารามิเตอร์ที่ส่งผ่าน ในคำจำกัดความของคลาส ระบุประเภทของพารามิเตอร์ (int) ภายในวิธีการเฉพาะ เราสามารถใช้พารามิเตอร์นี้ได้ พารามิเตอร์นี้ใช้ได้ภายในขอบเขตของเมธอดนี้เท่านั้น ซึ่งก็คือ growHeight()
เมื่อโทร เราจะผ่าน 10 ถึง growHeight() ความสูงของบุคคลเพิ่มขึ้น 10
เรียกวิธีอื่นบนวัตถุเดียวกัน
ภายในเมธอด สามารถเรียกเมธอดอื่นของอ็อบเจ็กต์เดียวกันได้ เวลาโทรให้ใช้แบบฟอร์ม this.method() เรายังจำได้ว่าสิ่งนี้หมายถึงวัตถุ ดังนั้น this.method() อ้างถึง method() วิธีการของวัตถุนั้นเอง
ตัวอย่างเช่น ฟังก์ชัน RepeatBreath() ต่อไปนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
Human aPerson = มนุษย์ใหม่ ();
aPerson.repeatBreath(10);
-
-
คลาสมนุษย์
-
ลมหายใจเป็นโมฆะ()
-
System.out.println("hu...hu...");
-
-
* โทรลมหายใจ()
-
เป็นโมฆะ RepeatBreath (ตัวแทน int)
-
ฉัน;
สำหรับ(i = 0; i <ตัวแทน; i++) {
นี้.ลมหายใจ();
-
-
ความสูงอินท์;
-
เพื่ออำนวยความสะดวกในการวนซ้ำ ในเมธอด RepeatBreath() เราจะประกาศออบเจ็กต์ i ประเภท int ขอบเขตของ i ถูกจำกัดอยู่ที่ขอบเขตของเมธอด RepeatBreath()
(ซึ่งคล้ายกับตัวแปรอัตโนมัติในฟังก์ชันภาษา C)
การเริ่มต้นสมาชิกข้อมูล
ใน Java มีหลายวิธีในการเริ่มต้นสมาชิกข้อมูล ตัวอย่างเช่น ในตัวอย่าง getHeight() ด้านบน แม้ว่าเราจะไม่ระบุค่าความสูง แต่ Java ก็เลือกค่าเริ่มต้นเริ่มต้นเป็น 0 สำหรับเรา
ค่าเริ่มต้นสำหรับสมาชิกข้อมูลประเภทพื้นฐาน:
1. ประเภทตัวเลข: 0
2.ค่าบูลีน: เท็จ
3. ประเภทอื่นๆ: null
เราสามารถระบุค่าเริ่มต้นของสมาชิกข้อมูลในขณะที่ประกาศได้ สิ่งนี้เรียกว่าการเริ่มต้นที่ชัดเจน ค่าเริ่มต้นการแสดงผลจะต้องเขียนอย่างหนักในโปรแกรม:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
Human aPerson = มนุษย์ใหม่ ();
System.out.println(aPerson.getHeight());
-
-
คลาสมนุษย์
-
*อุปกรณ์เสริม
-
int getHeight ()
-
กลับ this.height;
-
ส่วนสูง = 175;
-
ในที่นี้ ค่าเริ่มต้นของความสูงของสมาชิกข้อมูลคือ 175 ไม่ใช่ค่าเริ่มต้น 0
มีวิธีอื่นในการเริ่มต้นอ็อบเจ็กต์ใน Java ซึ่งฉันจะแนะนำในภายหลัง
สรุป
กลับ
นี้, this.field, this.method()
ค่าเริ่มต้น การเริ่มต้นที่ชัดเจน