บทที่ 5 ตอน 3 การปกป้องในการเข้าถึงข้อมูล(Access Modify) ด้วยคีย์เวิร์ดคำว่า Protected

4.  การปกป้องในการเข้าถึงข้อมูล(Access Modify) ด้วยคีย์เวิร์ดคำว่า Protected

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


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


(2)  จากนั้นไปที่คลาสปลา และสร้างเมธอด อาหาร โดยจะเป็นการทดลองเรียกใช้เมธอด ย่อยอาหาร จากคลาสสัตว์ที่มีการปกป้องข้อมูลแบบ Protected ซึ่งในเมธอดนี้นั้นจะการรับค่าพารามิเตอร์เข้ามา 1 ค่าคือ prmFood และส่งค่ากลับเป็นชนิด String

|1|  Public Class ปลา
|2|      Inherits สัตว์
|3|      Public ชื่อ As String
|4|      '---------------------------------
|5|      Public Function อาหาร(prmFood As String) As String
|6|          Return prmFood & ย่อยอาหาร()
|7|      End Function
|8|  End Class

ในบรรทัดที่ 6 ขณะที่จะเรียกใช้เมธอดนั้น โปรดสังเกตว่าคลาสปลาสามารถมองเห็นหรือเข้าถึงเมธอด ย่อยอาหาร() ในคลาสสัตว์ได้


(3)  จากนั้นไปเขียนโค้ดที่คลาสฟอร์มในเหตุการณ์เมื่อมีการคลิกที่ปุ่ม ปลา โปรดสังเกตขณะที่มีการเรียกเมธอดจากออบเจ็กต์จะไม่ปรากฏเมธอด ย่อยอาหาร() ในคลาสสัตว์แต่จะเข้าถึงได้เฉพาะเมธอด อาหาร() เท่านั้น ซึ่งในการส่งค่าอาร์กิวเมนต์เข้าไปที่เมธอด อาหาร() นั้นในตัวอย่างได้ส่งคำว่า “ผักบุ้ง” และส่งค่าไปยัง TextBox1.Text

|1|  Public Class Form1
|2|      Private Sub Button2_Click(....) Handles Button2.Click
|3|          Dim ปลาทอง As New ปลา
|4|          TextBox1.Text = ปลาทอง.อาหาร("ผักบุ้ง")
|5|      End Sub
|6|  End Class

(4)  เมื่อรันโปรแกรมและคลิกที่ปุ่ม ปลา จะแสดงผลดังภาพ  โปรดสังเกตว่า คำว่า “ผักบุ้ง” จะถูกส่งจากค่าอาร์กิวเมนต์ ส่วนคำว่า “กำลังย่อย” มาจากเมธอด ย่อยอาหาร() ในคลาสสัตว์




ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

บทที่ 11 ตอน 3 การออกแบบรายงานด้วย Crystal Report

บทที่ 6 กระบวนการพอลิมอร์ฟิซึม (Polymorphism)

บทที่ 11 ตอน 3 การออกแบบรายงานด้วย Crystal Report Ex2