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