คำถามติดแท็ก oop

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

19
เทคนิคใดที่สามารถใช้เพื่อกำหนดคลาสใน JavaScript และการแลกเปลี่ยนของพวกเขาคืออะไร
ฉันชอบที่จะใช้ OOP ในโครงการขนาดใหญ่อย่างที่ฉันกำลังทำอยู่ตอนนี้ ฉันต้องสร้างหลายคลาสใน JavaScript แต่ถ้าฉันไม่เข้าใจผิดมีอย่างน้อยสองวิธีที่จะทำเช่นนั้น ไวยากรณ์จะเป็นอย่างไรและทำไมจึงต้องทำเช่นนั้น? ฉันต้องการหลีกเลี่ยงการใช้ห้องสมุดบุคคลที่สามอย่างน้อยตอนแรก ค้นหาคำตอบอื่น ๆ ฉันพบบทความการเขียนโปรแกรมเชิงวัตถุด้วย JavaScript ตอนที่ 1: การสืบทอด - Doc JavaScriptที่กล่าวถึงการเขียนโปรแกรมเชิงวัตถุใน JavaScript มีวิธีที่ดีกว่าในการรับมรดกหรือไม่
686 javascript  oop  class 

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

16
การเพิ่มวิธีการไปยังอินสแตนซ์ของวัตถุที่มีอยู่
ฉันอ่านว่ามันเป็นไปได้ที่จะเพิ่มวิธีการในวัตถุที่มีอยู่ (เช่นไม่ได้อยู่ในคำจำกัดความของชั้นเรียน) ใน Python ฉันเข้าใจว่ามันไม่ดีเสมอไป แต่คนเราจะทำสิ่งนี้ได้อย่างไร?

7
วิธีการเรียกฟังก์ชั่นระดับผู้ปกครองจากฟังก์ชั่นระดับที่ได้รับ?
ฉันจะเรียกใช้ฟังก์ชัน parent จากคลาสที่ได้รับโดยใช้ C ++ ได้อย่างไร ตัวอย่างเช่นฉันมีชั้นเรียนที่เรียกว่าparentและชั้นเรียนที่เรียกว่าchildมาจากผู้ปกครอง ภายในแต่ละชั้นมีprintฟังก์ชั่น ในคำจำกัดความของฟังก์ชั่นการพิมพ์ของเด็กฉันต้องการโทรไปยังฟังก์ชั่นการพิมพ์ของผู้ปกครอง ฉันจะทำสิ่งนี้อย่างไร
603 c++  oop  inheritance 

16
เรายกระดับนามธรรมได้หรือไม่?
ในระหว่างการสัมภาษณ์ของฉันฉันถูกถามว่า "ถ้าเราสามารถสร้างคลาสนามธรรมได้หรือไม่" คำตอบของฉันคือ "ไม่เราไม่สามารถทำได้" แต่ผู้สัมภาษณ์บอกฉันว่า "ผิดเราทำได้" ฉันโต้เถียงเล็กน้อยเกี่ยวกับเรื่องนี้ จากนั้นเขาบอกให้ฉันลองทำเองที่บ้าน abstract class my { public void mymethod() { System.out.print("Abstract"); } } class poly { public static void main(String a[]) { my m = new my() {}; m.mymethod(); } } ที่นี่ฉันกำลังสร้างตัวอย่างของชั้นเรียนของฉันและวิธีการโทรของชั้นนามธรรม ใครช่วยอธิบายเรื่องนี้ให้ฉันหน่อยได้ไหม ฉันผิดในระหว่างการสัมภาษณ์หรือไม่?
573 java  oop  class  object  abstract 


9
'super' ใน Python คืออะไร
ความแตกต่างระหว่าง: class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__() และ: class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self) ฉันเห็นว่าsuperมีการใช้งานค่อนข้างมากในชั้นเรียนที่มีการสืบทอดเพียงครั้งเดียวเท่านั้น ฉันเห็นได้ว่าทำไมคุณถึงใช้มันในหลาย ๆ มรดก แต่ไม่ชัดเจนว่าข้อดีของการใช้มันในสถานการณ์แบบนี้คืออะไร
564 python  oop  inheritance  super 


5
โมเดลควรมีโครงสร้างอย่างไรใน MVC [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเพิ่งเข้าใจเกี่ยวกับกรอบ MVC และฉันมักจะสงสัยว่าควรมีโค้ดจำนวนเท่าใดในโมเดล ฉันมักจะมี data access class ที่มีวิธีดังนี้: public function CheckUsername($connection, $username) { try { $data = array(); $data['Username'] = $username; //// SQL $sql = "SELECT Username FROM" . $this->usersTableName . " WHERE Username = :Username"; //// Execute statement return $this->ExecuteObject($connection, $sql, $data); …

30
หนึ่งจะเขียนรหัสเชิงวัตถุใน C อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา การเขียนโค้ดเชิงวัตถุใน C มีวิธีใดบ้าง โดยเฉพาะในเรื่องของ polymorphism ดูเพิ่มเติมนี้กองมากเกินคำถามวัตถุปฐมนิเทศใน C
500 c  oop  object 

4
JavaScript: Class.method vs. Class.prototype.method
ข้อแตกต่างระหว่างสองข้อความต่อไปนี้คืออะไร? Class.method = function () { /* code */ } Class.prototype.method = function () { /* code using this.values */ } มันจะโอเคที่จะคิดว่าคำสั่งแรกเป็นการประกาศของวิธีการแบบคงที่และคำสั่งที่สองเป็นการประกาศของวิธีการอินสแตนซ์?

16
ความแตกต่างระหว่างการติดต่อกันและการมีเพศสัมพันธ์
ความแตกต่างระหว่างการทำงานร่วมกันและการมีเพศสัมพันธ์คืออะไร? การมีเพศสัมพันธ์และการทำงานร่วมกันนำไปสู่การออกแบบซอฟต์แวร์ที่ดีหรือไม่ดีได้อย่างไร มีตัวอย่างอะไรบ้างที่แสดงความแตกต่างระหว่างทั้งสองและผลกระทบที่มีต่อคุณภาพรหัสโดยรวม
486 oop  architecture  theory  ooad 

30
วิธีส่วนตัวของ JavaScript
ในการสร้างคลาส JavaScript ด้วยวิธีสาธารณะฉันจะทำสิ่งที่ชอบ: function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here } Restaurant.prototype.use_restroom = function(){ // something here } ด้วยวิธีนี้ผู้ใช้ในชั้นเรียนของฉันสามารถ: var restaurant = new Restaurant(); restaurant.buy_food(); restaurant.use_restroom(); ฉันจะสร้างวิธีส่วนตัวที่สามารถเรียกใช้โดยbuy_foodและuse_restroomวิธีการ แต่ไม่ภายนอกโดยผู้ใช้ของชั้นเรียนได้อย่างไร ในคำอื่น ๆ ฉันต้องการใช้วิธีการของฉันสามารถทำได้: Restaurant.prototype.use_restroom = function() { this.private_stuff(); } แต่สิ่งนี้ไม่ได้ผล: var r = new Restaurant(); r.private_stuff(); ฉันจะกำหนดprivate_stuffเป็นวิธีส่วนตัวได้อย่างไรเพื่อให้การพักทั้งสองนี้เป็นจริง ฉันได้อ่านการเขียนของ Doug Crockfordสองสามครั้ง …

29
ฉันจะอธิบายความแตกต่างระหว่างอินเทอร์เฟซกับคลาสนามธรรมได้อย่างไร
ในตอนหนึ่งของการสัมภาษณ์ของฉันฉันได้รับการถามเพื่ออธิบายความแตกต่างระหว่างนั้นอินเตอร์เฟซและระดับนามธรรม นี่คือคำตอบของฉัน: วิธีการของอินเทอร์เฟซ Java เป็นนามธรรมโดยปริยายและไม่สามารถใช้งานได้ คลาสนามธรรม Java สามารถมีวิธีการอินสแตนซ์ที่ดำเนินพฤติกรรมเริ่มต้น ตัวแปรที่ประกาศในอินเตอร์เฟส Java นั้นเป็นค่าเริ่มต้นสุดท้าย คลาสนามธรรมอาจมีตัวแปรที่ไม่สิ้นสุด สมาชิกของส่วนต่อประสาน Java เป็นสาธารณะโดยค่าเริ่มต้น คลาสนามธรรมของ Java สามารถมีสมาชิกคลาสได้ตามปกติเช่นส่วนตัวมีการป้องกัน ฯลฯ อินเทอร์เฟซ Java ควรใช้งานโดยใช้คำหลัก“ ดำเนินการ”; คลาสนามธรรมของ Java ควรถูกขยายโดยใช้คีย์เวิร์ด“ extends” อินเตอร์เฟสสามารถขยายอินเตอร์เฟส Java อื่นได้เท่านั้นคลาสนามธรรมสามารถขยายคลาส Java อื่นและใช้อินเตอร์เฟส Java หลายอินเตอร์เฟส คลาส Java สามารถใช้หลายอินเตอร์เฟส แต่สามารถขยายคลาสนามธรรมเพียงคลาสเดียวเท่านั้น อย่างไรก็ตามผู้สัมภาษณ์ไม่พอใจและบอกฉันว่าคำอธิบายนี้เป็นตัวแทนของ " ความรู้เกี่ยวกับหนอนหนังสือ " เขาถามฉันสำหรับการตอบสนองการปฏิบัติมากขึ้นอธิบายเมื่อฉันจะเลือกระดับนามธรรมมากกว่าอินเตอร์เฟซที่ใช้ตัวอย่างการปฏิบัติ ฉันไปผิดที่ไหน

18
ความแตกต่างระหว่างวิธีการเรียนและอินสแตนซ์คืออะไร?
ความแตกต่างระหว่างวิธีการเรียนและวิธีการอินสแตนซ์คืออะไร? อินสแตนซ์เป็น accessors (getters และ setters) ในขณะที่เมธอด class นั้นค่อนข้างทุกอย่างหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.