ในการเข้ารหัส อะไรคือความแตกต่างระหว่างวิธีการและฟังก์ชัน

เผยแพร่แล้ว: 2018-09-21

คำศัพท์ในการเข้ารหัส

ในการเขียนโปรแกรม มีคำศัพท์ต่างๆ มากมายที่ใช้อธิบายสิ่งเดียวกันทั้งหมด และยังมีคำศัพท์บางคำที่ดูเหมือนจะอ้างถึงสิ่งเดียวกันแต่จริงๆ แล้วไม่เป็นเช่นนั้น เพื่อให้เกิดความสับสนมากยิ่งขึ้น คำศัพท์บางคำใช้ต่างกันไปขึ้นอยู่กับประเภทของภาษาที่คุณกำลังพูดถึง หรือแม้กระทั่งเมื่อเปลี่ยนจากภาษาหนึ่งไปอีกภาษาหนึ่งที่เป็นประเภทเดียวกัน ดังนั้น คำศัพท์บางคำ เช่น "วิธีการ" "ฟังก์ชัน" "อินเทอร์เฟซ" หรือ "คลาสนามธรรม" อาจสร้างความสับสนให้กับคนบางคน เนื่องจากอาจหมายถึงสิ่งหนึ่งในบริบทหนึ่ง แต่ในอีกบริบทหนึ่งอาจมีความหมายแตกต่างไปจากเดิมอย่างสิ้นเชิง

ภาพรวมวิธีการ OOP

วิธีการเป็นขั้นตอนโดยพื้นฐานขั้นตอนที่ตราบนวัตถุที่กำหนด เมธอดจะใช้เฉพาะในภาษาการเขียนโปรแกรมเชิงวัตถุ เช่น C++ โดยพื้นฐานแล้ว เมธอดสามารถเปลี่ยนลักษณะของอ็อบเจ็กต์ที่ส่งผ่านเมธอด หรือเมธอดสามารถทำโพรซีเดอร์บางอย่างตามลักษณะที่มีอยู่ก่อนของอ็อบเจ็กต์ที่ส่งผ่าน ในบางครั้ง เมธอดสามารถเรียกใช้ผ่านโค้ดที่ไม่มีผลกับอ็อบเจ็กต์ที่ส่งผ่าน หรือมีการเปลี่ยนแปลงโดยคุณลักษณะที่มีอยู่แล้วของอ็อบเจ็กต์ แต่นี่เป็นเรื่องธรรมดาน้อยกว่ามากและไม่ใช่วิธีการจัดการที่ได้รับการส่งเสริม

อ่าน – กรอบงาน JavaScript ใดให้เลือก

ฟังก์ชั่นในการเข้ารหัสขั้นตอน

ในทางกลับกัน ฟังก์ชันเป็นคำทั่วไปที่อ้างถึงขั้นตอนที่รับอินพุตจำนวนมากและส่งกลับค่าจำนวนหนึ่ง ฟังก์ชันและเมธอดดูเหมือนน่าสับสนว่าจะทำสิ่งเดียวกันหรืออ้างถึงขั้นตอนเดียวกันเมื่อตั้งโปรแกรม แต่ก็ไม่เป็นเช่นนั้น ฟังก์ชันไม่สัมพันธ์กับอ็อบเจ็กต์และโดยทั่วไปจะใช้ในทุกภาษาระดับสูงที่ไม่ใช่เชิงอ็อบเจ็กต์ ในทางกลับกัน เมธอด จะ สัมพันธ์กับอ็อบเจกต์เท่านั้น และคำนี้ใช้เฉพาะเมื่อจัดการกับออบเจกต์หรือเมื่อโพรซีเดอร์อยู่ภายในคลาสเท่านั้น ดังนั้น ฟังก์ชันจะส่งคืนค่าตามอินพุตที่ให้มา ในขณะที่เมธอดจะเปลี่ยนลักษณะของออบเจกต์หรือคืนค่าตามลักษณะที่มีอยู่ก่อนของอ็อบเจ็กต์

อินเทอร์เฟซการเข้ารหัสและคลาสนามธรรม

คล้ายกับความสับสนระหว่างฟังก์ชันและวิธีการ มีความสับสนมากมายระหว่างอินเทอร์เฟซและคลาสนามธรรม อย่างไรก็ตาม ไม่เหมือนกับฟังก์ชันและเมธอด อินเทอร์เฟซและคลาสนามธรรมมีหลายอย่างที่เหมือนกันและคุณลักษณะของอินเทอร์เฟซนั้นง่ายต่อการผสมผสาน วิธีที่ง่ายที่สุดในการแยกความแตกต่างของทั้งสองคือการเข้าใจว่าอินเทอร์เฟซมีอยู่ เฉพาะ ในภาษาโปรแกรมเชิงวัตถุเท่านั้น ในขณะที่คลาสนามธรรมมีอยู่ในภาษาระดับสูง เกือบทั้งหมด

การเชื่อมต่อในเชิงลึก

อินเทอร์เฟซเป็นพื้นฐานที่คุณสร้างขึ้นเพื่อพิจารณาความคล้ายคลึงกันระหว่างคลาสทั้งหมด สมมติว่าคุณต้องการสร้างวัตถุที่แตกต่างกัน แต่พวกมันเป็นสัตว์ทั้งหมด ดังนั้น มนุษย์ ลิง และชิมแปนซี เห็นได้ชัดว่าสัตว์ทั้งสามนี้มีอะไรที่เหมือนกันหลายอย่าง และจะเป็นการดีที่จะให้คำจำกัดความของความคล้ายคลึงกันทั้งหมดเหล่านี้ ดังนั้นคุณจึงมั่นใจได้ว่าพวกมันทั้งหมดจะถูกนำไปใช้ในแต่ละชั้นเรียน ตัวอย่างเช่น แต่ละคนมีหัว สี่ขา ปาก จมูก ลิ้น ฯลฯ

ดังนั้น ในอินเทอร์เฟซ คุณกำหนดคุณลักษณะเหล่านี้ และเนื่องจากคุณกำหนดคุณลักษณะเหล่านี้ในอินเทอร์เฟซ เมื่อแต่ละคลาสใช้อินเทอร์เฟซ พวกเขา จะต้อง กำหนดและเริ่มต้นคุณลักษณะเหล่านี้ผ่านวิธีการที่กำหนดไว้ในอินเทอร์เฟซ มิฉะนั้น รหัสจะไม่ทำงาน เหตุผลหลักว่าทำไมคุณจะใช้อินเทอร์เฟซแทนคลาสนามธรรมคือถ้าสัตว์แต่ละตัวมีลักษณะเหมือนกัน แต่สัตว์แต่ละชนิดใช้พวกมันต่างกัน ตัวอย่างเช่น ชิมแปนซีทั้งหมด มนุษย์และลิงมีจมูก แต่ความกว้าง ความยาว และการใช้สำหรับพวกมันอาจแตกต่างกันเล็กน้อย ดังนั้น ความแตกต่างเหล่านี้จึงถูกกำหนดไว้ในแต่ละคลาส แต่ความจริงที่ว่าพวกเขามีจมูกถูกกำหนดไว้ในอินเทอร์เฟซ

อ่าน – เหตุผลที่ Laravel เป็น PHP Framework ที่ดีที่สุดในปี 2018

วิธีใช้คลาสนามธรรม

คลาสนามธรรมนั้นเหมือนกับอินเทอร์เฟซ อย่างไรก็ตาม จริง ๆ แล้วสามารถกำหนด และ เริ่มต้นเมธอดและฟังก์ชันต่างจากอินเทอร์เฟซได้ แต่ไม่จำเป็นต้องเป็นเช่นนั้น ยิ่งไปกว่านั้น แทนที่จะใช้คลาสที่ใช้คลาสนามธรรม พวกเขาทำให้คลาสนามธรรมเป็นซูเปอร์คลาส นี่เป็นข้อเสียเปรียบที่สำคัญสำหรับคลาสนามธรรมเมื่อเทียบกับอินเทอร์เฟซ เนื่องจากคลาสสามารถใช้อินเทอร์เฟซได้มากเท่าที่ต้องการ แต่มีซุปเปอร์คลาสได้เพียง 1 คลาส หมายความว่าคลาสสามารถใช้คลาสนามธรรมได้เพียงคลาสเดียว แต่มีอินเทอร์เฟซหลายรายการ

คลาสนามธรรมนั้นยอดเยี่ยม อย่างไรก็ตาม หากมีลักษณะบางอย่างที่ เหมือนกัน ซึ่งมีวิธีการปฏิบัติเหมือนกัน แต่ถ้ายังมีบางส่วนที่มีการนำไปปฏิบัติที่แตกต่างกันในวัตถุ ตัวอย่างเช่น หากคุณมีสองชั้นเรียน ชายและหญิง และต้องการกำหนดความคล้ายคลึงกันระหว่างทั้งสอง อาจเป็นการดีที่สุดที่จะใช้คลาสนามธรรม ทำไม เนื่องจากลักษณะบางอย่างระหว่างเพศมีความเหมือนกันและดำเนินการในลักษณะเดียวกันทุกประการ ตัวอย่างเช่น ปากมีขนาดใกล้เคียงกันและมีจุดประสงค์เดียวกัน ดวงตามีขนาดใกล้เคียงกันและทำหน้าที่เหมือนกันระหว่างเพศ ฯลฯ

ดังนั้น สำหรับคุณลักษณะเหล่านี้ ฟังก์ชันหรือวิธีการที่กำหนดคุณลักษณะเหล่านี้สามารถเริ่มต้นได้ในคลาสนามธรรม อย่างไรก็ตาม ลักษณะบางอย่าง เช่น สะโพกหรือคิ้วมีอยู่ในทั้งสองเพศ แต่ลักษณะเหล่านี้แตกต่างกันมากระหว่างทั้งสอง ดังนั้นคลาสนามธรรมจะไม่เริ่มต้นวิธีการหรือฟังก์ชันที่กำหนดคุณลักษณะเหล่านี้ และจะปล่อยให้เป็นคลาสย่อย

สรุป

หวังว่าคำอธิบายเหล่านี้จะไม่สับสนหรือใช้คำพูดมากเกินไป หากคุณยังใหม่ต่อการเขียนโปรแกรม อย่ากังวลหากคุณยังสับสนอยู่ มีแหล่งข้อมูล มากมาย ที่คุณสามารถใช้ทำความเข้าใจพื้นฐานของการเขียนโปรแกรมและความแตกต่างเล็กน้อยระหว่างคำศัพท์บางคำได้

มันสำคัญมากที่จะบอกว่าถ้าคุณอยากเป็นโปรแกรมเมอร์มืออาชีพ จำเป็นต้องมีทั้งแนวคิดเกี่ยวกับขั้นตอนและการเขียนโปรแกรมเชิงวัตถุ (OOP) อย่างแท้จริง. วิศวกรซอฟต์แวร์จำนวนมากใช้ Unified Model Language เพื่อแมปข้อกำหนดของโครงการหรือแอปพลิเคชันกับอ็อบเจ็กต์และไดอะแกรมก่อนที่จะทำการเข้ารหัส OOP มีแหล่งข้อมูลออนไลน์มากมายสำหรับการเรียนรู้วิศวกรรมซอฟต์แวร์ สำหรับวัยรุ่นและนักเรียนมัธยมปลาย High School Technology Services มีการฝึกอบรมภาคปฏิบัติที่หลากหลาย สำหรับผู้ใหญ่และมืออาชีพ สถาบัน Coding Bootcamps มีชั้นเรียนการเขียนโปรแกรมขั้นพื้นฐานไปจนถึงขั้นสูงมากมาย โดยมุ่งเน้นที่การเข้ารหัสทั้งแบบขั้นตอนและแบบ OOP

เกี่ยวกับผู้เขียน

Matt Zand เป็นโปรแกรมเมอร์ นักธุรกิจ ที่ปรึกษาด้านไอที และนักเขียน เขาเป็นผู้ก่อตั้งและเจ้าของ WEG2G Group เขายังเป็นผู้ก่อตั้ง DC Web Makers งานอดิเรกของเขาคือการเดินป่า ขี่จักรยาน กิจกรรมกลางแจ้ง ท่องเที่ยว และปีนเขา