chapter 2 - Construction and destruction - Overloading method WATTANAPONG SUTTAPAK, SE, ICT, UP, Thailand
จุดประสงค์การเรียนรู้ เข้าใจความหมายของ instance และสามารถสร้าง instance ได้ เข้าใจถึงความหมายของ construction และ destruction เข้าใจและสามารถสร้าง overloading method ได้
Instance s1 คือ Instance ของ Class Student s1.name เป็นการเข้าถึง attribute name ของคลาส Student ทำนองเดียวกันสามารถใช้ s1.major และ s1.faculty เพื่อกำหนดค่าและเรียกใช้ค่าได้ นอกจากนี้ สามารถสร้าง Instance อื่นๆของ Class Student ได้แต่ต้องไม่ใช่ชื่อสงวน
Instance s1 คือ Instance ของ Class Car s1.speed เป็นการเข้าถึง attribute speedของคลาส Car
Instance ในการสร้าง class สำหรับภาษา JAVA สามารถสร้าง class ที่มีชื่อเหมือนกัน แต่กำหนดตัวอักษรเล็กใหญ่ได้ เนื่องจาก JAVA เป็นภาษาแบบ case sensitive เช่น class Student{} และ class student{} แต่เมื่อทำการสร้าง class Student และ class student จะเกิด error เนื่องจาก ระบบที่พัฒนาเป็นระบบ windows ซึ่งเป็น case insensitive
Instance แล้วถ้า Class เป็นแบบนี้ Instance คืออะไร ? แบบที่ 2 แบบที่ 1
Constructor & Destructor หมายถึง method ที่มีชื่อเหมือนชื่อ class ในแต่ละ class ไม่จำเป็นต้องมี constructor ก็ได้ ต้องไม่มีการ return ค่า สำหรับ method ที่เป็น constructor ต้องไม่ใช้ void นำหน้าหรือมีการกำหนด data type นำหน้า method เมื่อสร้าง instance ของ class ทำให้ constructor ถูกเรียกใช้งานอัตโนมัติ destructor ในภาษา java ไม่มี destructor
Constructor Student Student2
Construction & Destruction หมายถึงการสร้างตัวแทน(instance) ของวัตถุ(object)นั่นซึ่งในที่นี้คือคลาส(class) ตัวอย่าง student s = new student(); scanner scan = new scanner(Sytem.in); Jframe jframe = new JFrame(); destruction หมายถึงการทำลาย instance ตัวอย่าง jframe.dispose(); // สำหรับ gui scan.close(); // สำหรับ ตัวรับข้อมูล สำหรับ object ปกติจะไม่มีการทำลาย เนื่องจาก java มี gabage collection คอยจัดการ memory
Example construction & destruction class ConandDestruction Construction Destruction
Overloading method เป็น method ที่มีชื่อเหมือนกัน ตัวแปรหรือ attribute ที่รับต้องมีจำนวนไม่เท่ากัน ถ้าตัวแปรหรือ attribute ที่รับมีจำนวนเท่ากัน ตัวแปรหรือ attribute นั้น ต้องเป็นคนละประเภทกัน
Overloading method ตัวอย่าง overloading method (int) i เป็นการเปลี่ยนค่าตัวแปรประเภท double หรือ float มาเป็น int
ตัวอย่าง overloading method ที่ผิด(compile ไม่ผ่าน) method ในบรรทัดที่ 2 และ 5 เกิด error เนื่องจาก มีการรับตัวแปรเท่ากันและประเภทเดียวกัน แม้ทั้งสอง method จะใช้ชื่อตัวแปรคนละตัวกัน (local variable)
ตัวอย่าง overloading method ที่ผิด(compile ไม่ผ่าน) method ในบรรทัดที่ 2 และ 5 เกิด error เนื่องจาก มีการรับตัวแปรเท่ากันและประเภทเดียวกัน แม้ทั้งสอง method จะมีการคืนค่าและไม่คืนค่าก็ตาม
constructor ที่มีการ overloading Overloading method constructor ที่มีการ overloading
this คืออะไร ณัฐพล คตภูธร ผลลัพธ์ที่ได้คือ ณัฐพล ผลลัพธ์ที่ได้คือ
constructor ที่มีการ overloading Overloading method constructor ที่มีการ overloading error เพราะไม่มี constructor แบบไม่รับตัวแปร
constructor ที่มีการ overloading Overloading method constructor ที่มีการ overloading ไม่ error เพราะไม่มี constructor แม้ไม่สร้าง constructor แบบไม่รับตัวแปร
constructor ที่มีการ overloading Overloading method constructor ที่มีการ overloading ไม่ error เพราะมี constructor แบบไม่รับตัวแปร
Object passing จากตัวอย่างที่ผ่านมา มีการส่งตัวแปรหลายๆ data type เช่น String int double เป็นต้น สามารถส่ง instance ของ class เข้าไปใน method หรือ constructor method ได้
Object passing
Object passing ผลลัพธ์ จำนวนนิสิต 1 จำนวนนิสิต 2 จำนวนนิสิต 3 ณัฐพล คตภูธร ณัฐวุฒิ จันทาพูน ธนพล สุขแจ่ม ผลลัพธ์
Assignment
Assignment ส่งท้ายชั่วโมง เขียนโปรแกรมพัฒนาระบบบริหารจัดการคณะโดยมีองค์ประกอบดังต่อไปนี้ คลาสคณะ คลาสสาขา คลาสนิสิต คลาสคณะ สามารถดูข้อมูลสาขาวิชาได้ เช่น จำนวนสาขาวิชาทั้งหมดในคณะ ชื่อแต่ละสาขาวิชา สามารถเพิ่มนิสิตได้ สามารถดูจำนวนของนิสิตทั้งคณะ สามารถดูจำนวนนิสิตแต่ละสาขา สามารถเรียกดูข้อมูลนิสิตได้ เช่น เพศ ชื่อ นามสกุล สาขาวิชา โดยสามารถเรียกดูแยก ดูชื่ออย่าง เดียว หรือทั้งชื่อและนามสกุล หรือเฉพาะสาขาวิชา หรือแสดงข้อมูล คำนำหน้า ชื่อ นามสกุล สาขาวิชา พร้อมกันทั้งหมดได้
ข้อมูลที่ต้องป้อน เพศและคำนำหน้า ห้ามป้อนข้อมูลซ้ำกัน เช่น เมื่อป้อนนายแล้ว ห้ามป้อนเพศชาย หรือ เมื่อป้อนเพศชายแล้ว ห้ามป้อนนาย
ผลลัพธ์ที่ได้