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

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

25
เหตุใด C # ไม่อนุญาตให้ใช้วิธีการแบบคงที่เพื่อใช้ส่วนต่อประสาน
เหตุใด C # จึงออกแบบวิธีนี้ ตามที่ฉันเข้าใจอินเทอร์เฟซจะอธิบายพฤติกรรมเท่านั้นและมีจุดประสงค์ในการอธิบายข้อผูกพันตามสัญญาสำหรับคลาสที่ใช้อินเทอร์เฟซที่มีการใช้งานพฤติกรรมบางอย่าง หากคลาสต้องการใช้พฤติกรรมนั้นในวิธีการแชร์ทำไมถึงไม่ควรใช้ นี่คือตัวอย่างของสิ่งที่ฉันมีอยู่ในใจ: // These items will be displayed in a list on the screen. public interface IListItem { string ScreenName(); ... } public class Animal: IListItem { // All animals will be called "Animal". public static string ScreenName() { return "Animal"; } .... } public …

21
คำหลัก 'คงที่' ทำอะไรในชั้นเรียน
เพื่อเป็นการเฉพาะฉันได้ลองใช้รหัสนี้: package hello; public class Hello { Clock clock = new Clock(); public static void main(String args[]) { clock.sayTime(); } } แต่มันทำให้เกิดข้อผิดพลาด ไม่สามารถเข้าถึงฟิลด์ที่ไม่คงที่ในวิธีหลักคงที่ ดังนั้นฉันจึงเปลี่ยนการประกาศของclockนี้: static Clock clock = new Clock(); และมันก็ใช้งานได้ การใส่คำหลักนั้นไว้ข้างหน้าหมายถึงอะไร? มันจะทำอะไรและ / หรือ จำกัด ในแง่ของสิ่งที่สามารถทำได้กับวัตถุนั้น?

30
อะไรคือความแตกต่างระหว่าง struct และ class ใน C ++?
คำถามนี้ถูกถามอยู่แล้วในบริบทของ C ตอนนี้ฉันต้องการเรียนรู้ความแตกต่างระหว่าง struct และคลาสใน C ++ โปรดอภิปรายเกี่ยวกับความแตกต่างทางเทคนิครวมถึงเหตุผลในการเลือกอย่างใดอย่างหนึ่งในการออกแบบ OO ฉันจะเริ่มต้นด้วยความแตกต่างที่ชัดเจน: หากคุณไม่ระบุpublic:หรือprivate:สมาชิกของ struct เป็นแบบสาธารณะโดยค่าเริ่มต้น สมาชิกของคลาสเป็นส่วนตัวโดยค่าเริ่มต้น ฉันแน่ใจว่ามีความแตกต่างอื่น ๆ ที่จะพบในมุมปิดบังของสเปค C ++
441 c++  oop  class  struct  c++-faq 

15
เราควร @Override การใช้วิธีการอินเตอร์เฟซ?
ควรทำหมายเหตุประกอบวิธีที่ใช้วิธีการเชื่อมต่อกับ@Override? Javadoc ของOverrideคำอธิบายประกอบพูดว่า: บ่งชี้ว่าการประกาศเมธอดมีวัตถุประสงค์เพื่อแทนที่การประกาศเมธอดในซูเปอร์คลาส หากเมธอดถูกทำหมายเหตุประกอบด้วยชนิดคำอธิบายประกอบนี้ แต่ไม่ได้แทนที่เมธอด superclass จำเป็นต้องมีคอมไพเลอร์เพื่อสร้างข้อความแสดงข้อผิดพลาด ฉันไม่คิดว่าอินเทอร์เฟซเป็นซูเปอร์คลาสในทางเทคนิค หรือมันคืออะไร? Question Elaboration

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


19
อะไรคือความแตกต่างระหว่างความสัมพันธ์การรวมตัวและการแต่งเพลง?
อะไรคือความแตกต่างระหว่างความสัมพันธ์การรวมตัวและการแต่งเพลง? โปรดอธิบายในแง่ของการใช้งาน

6
การอธิบาย '__enter__' ของ Python และ '__exit__'
ฉันเห็นสิ่งนี้ในรหัสของใครบางคน มันหมายความว่าอะไร? def __enter__(self): return self def __exit__(self, type, value, tb): self.stream.close() from __future__ import with_statement#for python2.5 class a(object): def __enter__(self): print 'sss' return 'sss111' def __exit__(self ,type, value, traceback): print 'ok' return False with a() as s: print s print s

30
เมื่อใดที่คุณควรใช้ 'เพื่อน' ใน C ++
ฉันได้อ่านคำถามที่พบบ่อย C ++และอยากรู้เกี่ยวกับการfriendประกาศ ฉันเองไม่เคยใช้มันเป็นการส่วนตัว แต่ฉันสนใจที่จะสำรวจภาษา ตัวอย่างที่ดีของการใช้friendคืออะไร อ่านคำถามที่พบบ่อยอีกเล็กน้อยฉันชอบความคิดของ<< >>ผู้ประกอบการมากไปและเพิ่มเป็นเพื่อนของชั้นเรียนเหล่านั้น อย่างไรก็ตามฉันไม่แน่ใจว่าวิธีนี้จะไม่ทำลาย encapsulation ข้อยกเว้นเหล่านี้จะอยู่ภายในความเข้มงวดของ OOP เมื่อใด
354 c++  oop  encapsulation  friend 


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

8
ใช้การจัดสรร init แทนของใหม่
การเรียนรู้ Objective-C และการอ่านโค้ดตัวอย่างฉันสังเกตว่ามักจะสร้างวัตถุโดยใช้วิธีนี้: SomeObject *myObject = [[SomeObject alloc] init]; แทน: SomeObject *myObject = [SomeObject new]; มีเหตุผลสำหรับสิ่งนี้เพราะฉันได้อ่านว่าพวกเขาจะเทียบเท่า?
344 objective-c  oop 



12
JavaScript มีประเภทอินเตอร์เฟส (เช่น 'ส่วนต่อประสาน' ของ Java) หรือไม่
ฉันเรียนรู้วิธีที่จะทำให้ OOP ด้วย JavaScript มันมีแนวคิดของส่วนต่อประสาน (เช่นของ Java interface) หรือไม่? ดังนั้นฉันจะสามารถสร้างผู้ฟัง ...
324 javascript  oop 

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