สำหรับโปรแกรมเมอร์และผู้ที่ชื่นชอบการเขียนโปรแกรม เทคโนโลยีของคลาสใน VB ถือเป็นจุดที่ยากในการเรียนรู้ ในกระบวนการพัฒนาซอฟต์แวร์ขนาดใหญ่ โมดูล (Moudle) การควบคุม (Activeocx) ไลบรารีลิงก์ (Activedll) และคลาส (Classmoudle) ถือเป็นวิศวกรรมซอฟต์แวร์ที่เป็นระบบและมีประสิทธิภาพ และเทคโนโลยีคลาสเป็นพื้นฐานของเทคโนโลยีไลบรารีการควบคุมและลิงก์ ดังนั้นจึงมีความหมายมากที่จะเชี่ยวชาญทฤษฎีและวิธีการเขียนโปรแกรมของคลาส
(1) คำจำกัดความพื้นฐานและภาพรวมการใช้งานของคลาส
คลาสเป็นโมดูลโค้ดระดับสูงที่มีเมธอด คุณสมบัติ และสมาชิกข้อมูล ไม่เพียงแต่อยู่ภายในขอบเขตของโมดูลเท่านั้น แต่ยังรวมถึง Activeocx ที่ไม่มีอินเทอร์เฟซแบบกราฟิกอีกด้วย เห็นมัน เป็นที่น่าสังเกตว่าคลาสไม่สามารถสืบทอดได้
คลาสช่วยให้เราสามารถดำเนินการที่ซับซ้อนบนอ็อบเจ็กต์หนึ่งหรือหลายอ็อบเจ็กต์ได้อย่างมีประสิทธิภาพ การกระทำของอ็อบเจ็กต์เป็นวิธีการของคลาส และคุณลักษณะของอ็อบเจ็กต์คือกระบวนการคุณลักษณะของคลาส หากวัตถุของการเขียนโปรแกรมเป็นกลุ่มของสิ่งต่าง ๆ ก็เหมาะสมมากสำหรับเราที่จะใช้โมดูลมาตรฐาน ในสองกรณีต่อไปนี้ คลาสควรใช้สำหรับการประมวลผลโค้ด:
(1) สร้างวัตถุจำนวนมากที่มีคุณสมบัติคล้ายกัน
(2) ปรับปรุงการห่อหุ้มโค้ด
การสร้างคลาสนั้นง่ายมาก เมื่อเขียนโค้ด ให้เลือกรายการ "เพิ่มโมดูลคลาส" ในเมนู "โครงการ" เพื่อเพิ่มคลาสว่าง
โดยทั่วไปไฟล์คลาสจะถูกบันทึกด้วยนามสกุล .cls
(2) การใช้วิธีการแบบคลาส ;
วิธีการของคลาสจะคล้ายกับฟังก์ชันอินเทอร์เฟซของไดนามิกลิงก์ไลบรารี โดยสามารถรับพารามิเตอร์ประเภทที่ระบุจากโค้ดฟอร์มอื่นและส่งผ่านไปยังคลาสได้ โดยทั่วไปแล้ว วิธีการเรียนสามารถระบุได้ว่ามีค่าส่งคืนหรือไม่ โดยปกติจะเป็นขั้นตอนสาธารณะในชั้นเรียน พิจารณาตัวอย่างโค้ดต่อไปนี้ ซึ่งทำให้กล่องรหัสผ่านปฏิเสธการป้อนข้อมูลที่ไม่ใช่ตัวอักษร:
(1) รหัสคล้าย cls;
การตรวจสอบตัวแปร OptionExplicit'
ส่วนตัวด้วยกิจกรรม mytxtAsTextBox
'วิธีการในคลาสนี้ยอมรับและควบคุมกล่องรหัสผ่านข้อความ
DimisNUMAsบูลีน
'ตัวแปรระดับโมดูลของชั้นเรียน
PublicSubAttach(itTEXTAsTextBox)
'ยอมรับตัวแปรภายนอกเข้าสู่ mytxt
Setmytxt=itTEXT
สิ้นสุดย่อย
PrivateSubmytxt_KeyUp (KeyCodeAsInteger, ShiftAsInteger)
isNUM=(รหัสคีย์>=65)และ(รหัสคีย์<=90)
'ทดสอบว่าอินพุตคีย์บอร์ดในกล่องรหัสผ่านเป็นตัวอักษรภาษาอังกฤษหรือไม่
IfisNUM=เท็จแล้ว
บี๊บ
mytxt.ข้อความ = ""
'หากอินพุตไม่ใช่ตัวอักษรภาษาอังกฤษ กระดิ่งจะดังขึ้นและเนื้อหาของกล่องรหัสผ่านจะถูกล้าง
MsgBox "การป้อนอักขระไม่ถูกต้อง!"
สิ้นสุดถ้า
Debug.Printmytxt.ข้อความ
'เนื้อหากล่องรหัสผ่านเอาท์พุทดีบัก
สิ้นสุดย่อย
'รหัสปิดชั้นเรียน'
(2) การอ้างอิงคลาส ;
คลาสที่เขียนสามารถอ้างอิงได้สองรูปแบบ วิธีแรก: ส่วนตัว (สาธารณะหรือสลัว) myCLS (ชื่อคลาสที่ระบุ) AsNewcls (ชื่อคลาสที่เขียน); ขั้นแรกให้ทำการประกาศระดับโมดูล - DimmyCLSAscls ในโค้ดฟอร์ม จากนั้นสร้างคำจำกัดความเฉพาะ - Setmycls=Newcls ในกระบวนการโค้ดเฉพาะ อาจมีความแตกต่างในประสิทธิภาพและความเรียบง่ายของโค้ดระหว่างสองวิธีนี้ แต่ในการฝึกเขียนโปรแกรมของผู้เขียนไม่มีความรู้สึกพิเศษ อย่างไรก็ตาม ฉันชอบวิธีแรกเพราะสะดวกกว่าในการเขียน นอกจากนี้ ในตอนท้ายของโค้ด การใช้ SetmyCLS=Nothing เพื่อยกเลิกการครอบครองทรัพยากรของชั้นเรียนถือเป็นนิสัยการเขียนโปรแกรมที่ดีมาก
ในแบบฟอร์ม form1 (แบบฟอร์มมีกล่องรหัสผ่านควบคุม text1, passworldchar="*") เพิ่มรหัสต่อไปนี้:
ตัวเลือกที่ชัดเจน
PrivatemyCLSAsNewcls
'อ้าง cls
ส่วนตัวSubForm_Load()
myCLS.แนบข้อความ1
'คลาสสตาร์ทอัพ
สิ้นสุดย่อย
'อย่าลืมปล่อยทรัพยากรที่ส่วนท้ายของโค้ด
PrivateSubForm_Unload (ยกเลิก AsInteger)
SetmyCLS=ไม่มีอะไร
จบ
สิ้นสุดย่อย
รหัสในบทความนี้แสดงกระบวนการเขียนโค้ดและวิธีการเรียกวิธีการเรียน (แม้ว่าจะคล้ายกับเหตุการณ์ในชั้นเรียนมากก็ตาม) ผลก็คือหากป้อนข้อความที่ไม่ใช่ตัวอักษรลงในกล่องรหัสผ่าน ระบบจะทำเช่นนั้น แหวนและกล่องรหัสผ่านจะถูกลบออกจากข้อมูลเดิม - ปกป้องรหัสผ่านในระดับหนึ่ง
วิธีการเรียนไม่ต้องการพารามิเตอร์ใด ๆ ซึ่งคล้ายกับฟังก์ชั่นหรือขั้นตอนสาธารณะ นอกจากนี้ยังเป็นวิธีที่ใช้กันอย่างแพร่หลายในชั้นเรียน ในบทความถัดไป ผมจะพูดถึงวิธีการใช้คุณสมบัติ เหตุการณ์ และวิธีการของคลาสสำหรับการเขียนโปรแกรมแบบครอบคลุม (ยังมีต่อ)
-