OOP Concepts in Java
OOPS คืออะไร?
ระบบการเขียนโปรแกรมเชิงวัตถุ (OOP) เป็นแนวคิดการเขียนโปรแกรมที่ทำงานบนหลักการของนามธรรม การห่อหุ้ม การสืบทอด และความหลากหลาย อนุญาตให้ผู้ใช้สร้างวัตถุที่พวกเขาต้องการและสร้างวิธีการจัดการกับวัตถุเหล่านั้น แนวคิดพื้นฐานของ OOP คือการสร้างออบเจ็กต์ นำมาใช้ใหม่ตลอดทั้งโปรแกรม และจัดการออบเจ็กต์เหล่านี้เพื่อให้ได้ผลลัพธ์
OOP แปลว่า "การเขียนโปรแกรมเชิงวัตถุ" เป็นแนวคิดที่เป็นที่รู้จักและใช้กันอย่างแพร่หลายในภาษาโปรแกรมสมัยใหม่เช่น Java.
OOP Concepts in Java ด้วยตัวอย่าง
ต่อไปนี้เป็นแนวคิด OOP ทั่วไปใน Java:
1) ชั้นเรียน
เค้ก ชั้น เป็นแนวคิดพื้นฐานอย่างหนึ่งของ OOP ซึ่งเป็นกลุ่มของเอนทิตีที่คล้ายคลึงกัน เป็นเพียงส่วนประกอบเชิงตรรกะเท่านั้น ไม่ใช่เอนทิตีทางกายภาพ มาทำความเข้าใจ OOP กัน Concepts ตัวอย่างเช่น หากคุณมีคลาสที่เรียกว่า "รถยนต์ราคาแพง" ก็อาจมีวัตถุเช่น Mercedes, BMW, Toyota ฯลฯ คุณสมบัติ (ข้อมูล) ของคลาสอาจเป็นราคาหรือความเร็วของรถยนต์เหล่านี้ ในขณะที่วิธีการต่างๆ อาจทำได้กับรถยนต์เหล่านี้ เช่น การขับรถ ถอยรถ เบรก เป็นต้น
2) วัตถุ
อ็อบเจ็กต์สามารถกำหนดเป็นอินสแตนซ์ของคลาสได้ และสามารถมีหลายอินสแตนซ์ของคลาสในโปรแกรมได้ วัตถุเป็นหนึ่งใน Java แนวคิด OOPs ซึ่งประกอบด้วยทั้งข้อมูลและฟังก์ชันซึ่งดำเนินการกับข้อมูล ตัวอย่างเช่น เก้าอี้ จักรยาน ปากกาเมจิก ปากกา โต๊ะ รถยนต์ เป็นต้น
3) มรดก
มรดก เป็นหนึ่งในพื้นฐาน Concepts ของ OOP ซึ่งวัตถุหนึ่งได้รับคุณสมบัติและลักษณะการทำงานของวัตถุหลัก เป็นการสร้างความสัมพันธ์ระหว่างพ่อแม่และลูกระหว่างสองชั้น มีกลไกที่แข็งแกร่งและเป็นธรรมชาติสำหรับการจัดระเบียบและโครงสร้างของซอฟต์แวร์ใดๆ
4) ความแตกต่าง
ความหลากหลาย หมายถึงแนวคิดหนึ่งของ OOP ใน Java ซึ่งเป็นความสามารถของตัวแปร วัตถุ หรือฟังก์ชันในรูปแบบต่างๆ เช่น ในภาษาอังกฤษ คำกริยา วิ่ง มีความหมายที่แตกต่างออกไปหากคุณใช้กับ โน้ตบุค, การแข่งขันเดินเท้าและ ธุรกิจ- ในที่นี้เราเข้าใจความหมายของ วิ่ง ขึ้นอยู่กับคำอื่น ๆ ที่ใช้ควบคู่กับมัน เช่นเดียวกับ Polymorphism
5) นามธรรม
สิ่งที่เป็นนามธรรม เป็นหนึ่งใน OOP Concepts in Java ซึ่งเป็นการแสดงคุณลักษณะที่สำคัญโดยไม่รวมรายละเอียดพื้นหลัง เป็นเทคนิคในการสร้างประเภทข้อมูลใหม่ที่เหมาะกับแอปพลิเคชันเฉพาะ มาทำความเข้าใจ OOP กัน Concepts ตัวอย่างเช่น ขณะขับรถ คุณไม่จำเป็นต้องกังวลกับการทำงานภายในของรถยนต์ ที่นี่คุณเพียงแค่ต้องกังวลเกี่ยวกับชิ้นส่วนต่างๆ เช่น พวงมาลัย เกียร์ คันเร่ง ฯลฯ
6) การห่อหุ้ม
encapsulation เป็นหนึ่งในที่ดีที่สุด Java แนวคิดของ OOPs เกี่ยวกับการห่อหุ้มข้อมูลและโค้ด ในแนวคิดของ OOPs นี้ ตัวแปรของคลาสจะถูกซ่อนจากคลาสอื่นๆ เสมอ สามารถเข้าถึงได้โดยใช้เมธอดของคลาสปัจจุบันเท่านั้น ตัวอย่างเช่น ในโรงเรียน นักเรียนไม่สามารถดำรงอยู่ได้หากไม่มีคลาส
7) สมาคม
การเชื่อมโยงคือความสัมพันธ์ระหว่างวัตถุสองชิ้น เป็นหนึ่งใน OOP Concepts in Java ซึ่งกำหนดความหลากหลายระหว่างวัตถุ ในแนวคิด OOP นี้ ออบเจ็กต์ทั้งหมดมีวงจรชีวิตที่แยกจากกัน และไม่มีเจ้าของ ตัวอย่างเช่น นักเรียนหลายคนสามารถเชื่อมโยงกับครูคนเดียว ในขณะที่นักเรียนคนหนึ่งสามารถเชื่อมโยงกับครูหลายคนได้เช่นกัน
8) การรวมกลุ่ม
ในเทคนิคนี้ วัตถุทั้งหมดจะมีวงจรชีวิตที่แยกจากกัน อย่างไรก็ตาม มีกรรมสิทธิ์ที่วัตถุย่อยไม่สามารถเป็นของวัตถุหลักอื่นได้ ตัวอย่างเช่น พิจารณาคลาส/วัตถุ แผนก และครู ในกรณีนี้ ครูคนเดียวไม่สามารถเป็นของแผนกต่างๆ ได้หลายแผนก แต่แม้ว่าเราจะลบแผนกนั้นออกไปแล้ว วัตถุครูก็จะไม่มีวันถูกทำลาย
9) องค์ประกอบ
องค์ประกอบเป็นรูปแบบพิเศษของการรวมกลุ่ม เรียกอีกอย่างว่าความสัมพันธ์แบบ "ความตาย" ออบเจ็กต์ลูกไม่มีวงจรการใช้งาน ดังนั้นเมื่อออบเจ็กต์หลักลบออบเจ็กต์ลูกทั้งหมดจะถูกลบโดยอัตโนมัติด้วย เพื่ออย่างนั้น เรามาดูตัวอย่างบ้านและห้องกัน บ้านใดก็ได้สามารถมีได้หลายห้อง ห้องหนึ่งไม่สามารถเป็นส่วนหนึ่งของบ้านสองหลังที่แตกต่างกันได้ ดังนั้นหากลบห้องในบ้านก็จะถูกลบไปด้วย
ข้อดีของ OOP (ระบบการเขียนโปรแกรมเชิงวัตถุ):
- OOP Concepts in Java ให้ง่ายต่อการเข้าใจและมีโครงสร้างโมดูลาร์ที่ชัดเจนสำหรับโปรแกรม
- ออบเจ็กต์ที่สร้างขึ้นสำหรับโปรแกรมเชิงวัตถุสามารถนำมาใช้ซ้ำในโปรแกรมอื่นได้ ดังนั้นจึงช่วยประหยัดต้นทุนการพัฒนาได้อย่างมาก
- โปรแกรมขนาดใหญ่เขียนได้ยาก แต่หากทีมพัฒนาและออกแบบปฏิบัติตามแนวคิด OOPS ก็สามารถออกแบบได้ดีขึ้นโดยมีข้อบกพร่องน้อยที่สุด
- มันช่วยเพิ่มโมดูลาร์ของโปรแกรมเพราะทุกอ็อบเจ็กต์มีอยู่อย่างอิสระ
การเปรียบเทียบ OOPS กับรูปแบบการเขียนโปรแกรมอื่นๆ ด้วยความช่วยเหลือของตัวอย่าง
มาทำความเข้าใจด้วยตัวอย่างว่าอย่างไร Java OOP Concepts แตกต่างจากวิธีการเขียนโปรแกรมอื่นๆ
ภาษาโปรแกรม สามารถจำแนกได้เป็น 3 ประเภทหลัก
- ภาษาโปรแกรมที่ไม่มีโครงสร้าง: ภาษาโปรแกรมดั้งเดิมที่สุดที่มีการควบคุมตามลำดับ รหัสถูกทำซ้ำตลอดทั้งโปรแกรม
- ภาษาการเขียนโปรแกรมที่มีโครงสร้าง: มีการควบคุมไม่ต่อเนื่องกัน การใช้ฟังก์ชันช่วยให้สามารถใช้โค้ดซ้ำได้
- ภาษาโปรแกรมเชิงวัตถุ: รวมข้อมูลและการดำเนินการเข้าด้วยกัน
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
มาทำความเข้าใจ 3 ประเภทนี้พร้อมตัวอย่าง
สมมติว่าคุณต้องการสร้างซอฟต์แวร์การธนาคารที่มีฟังก์ชันดังนี้
- เงินฝาก
- ถอน
- แสดงยอดคงเหลือ
ภาษาโปรแกรมที่ไม่มีโครงสร้าง
ภาษาการเขียนโปรแกรมที่เก่าแก่ที่สุดคือภาษาโปรแกรมที่ไม่มีโครงสร้าง รหัสเบื้องต้นของแอปพลิเคชันธนาคารในภาษาโปรแกรมที่ไม่มีโครงสร้างจะมีตัวแปรสองตัวคือหมายเลขบัญชีหนึ่งและอีกตัวสำหรับยอดเงินในบัญชี
int account_number=20; int account_balance=100;
สมมติว่ามีการฝากเงินจำนวน 100 ดอลลาร์
account_balance=account_balance+100
ถัดไปคุณจะต้องแสดงยอดเงินในบัญชี
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
ตอนนี้ถอนเงินจำนวน 50 ดอลลาร์แล้ว
account_balance=account_balance-50
คุณต้องแสดงยอดเงินในบัญชีอีกครั้ง
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
หากต้องฝากหรือถอนเงินในครั้งต่อไป คุณจะต้องพิมพ์รหัสซ้ำในบรรทัดเดียวกันอีกครั้ง
การเขียนโปรแกรมแบบมีโครงสร้าง
ด้วยการมาถึงของการเขียนโปรแกรมแบบมีโครงสร้าง บรรทัดซ้ำๆ บนโค้ดจึงถูกใส่เข้าไปในโครงสร้าง เช่น ฟังก์ชันหรือเมธอด เมื่อจำเป็น ก็สามารถเรียกฟังก์ชันนี้ได้อย่างง่ายดาย
การเขียนโปรแกรมเชิงวัตถุ
ในโปรแกรมของเรา เรากำลังจัดการกับข้อมูลหรือดำเนินการเฉพาะกับข้อมูล ในความเป็นจริง การมีข้อมูลและดำเนินการบางอย่างกับข้อมูลนั้นเป็นลักษณะพื้นฐานมากในโปรแกรมซอฟต์แวร์ใดๆ ผู้เชี่ยวชาญด้านการเขียนโปรแกรมซอฟต์แวร์คิดที่จะรวมข้อมูลและ Operaดังนั้น จึงเกิดการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming) ซึ่งโดยทั่วไปเรียกว่า OOPS โค้ดเดียวกันในภาษาการเขียนโปรแกรมเชิงวัตถุจะมีข้อมูลเดียวกันและมีการดำเนินการบางอย่างกับข้อมูลนั้น
Class Account{ int account_number; int account_balance; public void showdata(){ system.out.println(“Account Number”+account_number) System.out.println(“Account Balance”+ account_balance) } }
การรวมข้อมูลและการกระทำเข้าด้วยกันจะทำให้เราได้เปรียบการเขียนโปรแกรมเชิงโครงสร้างหลายประการ เช่น
- สิ่งที่เป็นนามธรรม
- encapsulation
- มรดก
- ความหลากหลาย
มีการหารือเกี่ยวกับเรื่องนี้ในรายละเอียดเพิ่มเติมในบทช่วยสอนถัดไป