การเขียนโปรแกรมเชิงวัตถุกับการเขียนโปรแกรมตามขั้นตอน
Object Oriented Programming (OOP) และ Procedural Programming เป็นสองกระบวนทัศน์การเขียนโปรแกรม กระบวนทัศน์การเขียนโปรแกรมเป็นรูปแบบพื้นฐานของการเขียนโปรแกรมคอมพิวเตอร์และแตกต่างกันในวิธีการแสดงองค์ประกอบต่างๆ ของโปรแกรมและวิธีกำหนดขั้นตอนในการแก้ปัญหา ตามชื่อที่แนะนำ OOP มุ่งเน้นไปที่การแสดงปัญหาโดยใช้วัตถุในโลกแห่งความเป็นจริงและพฤติกรรมของพวกมัน ในขณะที่ Procedural Programming เกี่ยวข้องกับการแสดงวิธีแก้ไขปัญหาโดยใช้ขั้นตอน ซึ่งเป็นชุดของรหัสที่ทำงานในลำดับเฉพาะมีภาษาโปรแกรมที่สนับสนุนลักษณะสำคัญของ OOP (เรียกว่าภาษา OOP) ขั้นตอน (เรียกว่าภาษาขั้นตอน) และทั้งสองอย่าง แต่สิ่งสำคัญอย่างหนึ่งที่ควรทราบคือ OOP และขั้นตอนเป็นสองวิธีในการแสดงปัญหาที่จะแก้ไข และไม่สำคัญว่าจะใช้ภาษาใด กล่าวอีกนัยหนึ่ง ภาษา OOP สามารถใช้สำหรับ Procedural Programming ในขณะที่บางครั้งภาษา Procedural สามารถใช้สำหรับ OOP ได้ด้วยความพยายามบางอย่าง
Procedural Programming เป็นวิธีการเขียนโปรแกรมโดยการระบุชุดของขั้นตอนในการแก้ปัญหาและลำดับที่แน่นอนที่ควรดำเนินการเพื่อให้ได้ผลลัพธ์หรือสถานะที่ต้องการ ตัวอย่างเช่น หากคุณต้องการคำนวณยอดปิดบัญชีสิ้นเดือนสำหรับบัญชีธนาคาร ขั้นตอนที่จำเป็นจะเป็นดังนี้ ขั้นแรก คุณได้รับยอดเงินเริ่มต้นของบัญชี จากนั้นคุณลดจำนวนเดบิตทั้งหมดที่เกิดขึ้นระหว่างเดือน หลังจากนั้น คุณเพิ่มจำนวนเครดิตทั้งหมดที่เกิดขึ้นระหว่างเดือน เมื่อสิ้นสุดกระบวนการ คุณจะได้รับยอดปิดบัญชีสิ้นเดือนของบัญชีหนึ่งในแนวคิดหลักของ Procedural Programming คือการเรียกโพรซีเดอร์ โพรซีเดอร์เรียกอีกอย่างว่ารูทีนย่อย เมธอด หรือฟังก์ชันประกอบด้วยรายการคำสั่งที่ต้องดำเนินการ โพรซีเดอร์สามารถเรียกได้ตลอดเวลาระหว่างการดำเนินการโดยโพรซีเดอร์อื่นหรือด้วยตัวเอง ตัวอย่างภาษาโปรแกรม Procedural ได้แก่ C และ Pascal
ใน OOP มุ่งเน้นไปที่การคิดถึงปัญหาที่จะแก้ไขในแง่ขององค์ประกอบในโลกแห่งความเป็นจริงและเป็นตัวแทนของปัญหาในแง่ของวัตถุและพฤติกรรมของพวกเขา Object เป็นโครงสร้างข้อมูลที่ใกล้เคียงกับวัตถุในโลกแห่งความเป็นจริง ออบเจ็กต์ประกอบด้วยฟิลด์ข้อมูลและวิธีการที่แสดงถึงคุณลักษณะและพฤติกรรมของออบเจกต์ในโลกแห่งความเป็นจริง มีแนวคิด OOP ที่สำคัญหลายประการ เช่น Data abstraction, Encapsulation, Polymorphism, Messaging, Modularity และ Inheritance ภาษา OOP ยอดนิยมบางภาษา ได้แก่ Java และ C อย่างไรก็ตาม สามารถใช้ในการเขียนโปรแกรมตามขั้นตอนได้เช่นกัน
ความแตกต่างที่สำคัญระหว่าง OOP และ Procedural Programming คือจุดเน้นของ Procedural Programming คือการแบ่งงานเขียนโปรแกรมออกเป็นชุดของตัวแปรและรูทีนย่อย ในขณะที่จุดเน้นของ OOP คือการแบ่งงานการเขียนโปรแกรมออกเป็น วัตถุซึ่งห่อหุ้มข้อมูลและวิธีการความแตกต่างที่น่าสังเกตมากที่สุดอาจเป็นได้ว่าในขณะที่ Procedural Programming ใช้โพรซีเดอร์เพื่อดำเนินการกับโครงสร้างข้อมูลโดยตรง OOP จะรวมข้อมูลและวิธีการเข้าด้วยกันเพื่อให้อ็อบเจ็กต์ทำงานด้วยข้อมูลของตัวเอง เมื่อพูดถึงระบบการตั้งชื่อ โพรซีเดอร์ โมดูล การเรียกโพรซีเดอร์ และตัวแปรในการเขียนโปรแกรมตามขั้นตอน มักถูกอ้างถึงเป็นเมธอด วัตถุ ข้อความ และแอตทริบิวต์ใน OOP ตามลำดับ