‫ยินดีต้อนรับกลับ.
‫ในวิดีโอนี้ ฉันต้องการแสดงคุณสมบัติและสอนวิธีการทำงานของคุณสมบัติ
‫และเนื่องจากวิดีโอหนึ่งจะยาวเกินไป และฉันได้สร้างวิดีโอเกี่ยวกับคุณสมบัติในอดีต และมันก็ดูสับสนเกินไปเล็กน้อยตามที่เห็น
‫ฉันตัดสินใจทำลายมันและบันทึกมันใหม่เพราะมันยังดีไม่พออย่างที่เห็น
‫ดังนั้น หากคุณพบวิดีโออื่นที่สร้างความสับสน มันไม่ช่วยอะไรคุณเลย
‫โปรดแจ้งให้เราทราบเพราะฉันต้องการให้หลักสูตรนี้เป็นหลักสูตรที่ดีที่สุด
‫ไม่เป็นไร.
‫สิ่งที่เราต้องทำคือ ขั้นแรก สร้างคลาสใหม่
‫ไปที่โครงการและเพิ่มชั้นเรียนใหม่เพราะฉันต้องการสอนพื้นฐานของคุณสมบัติเพราะพวกเขาเป็นแง่มุมที่สำคัญหรือแนวคิดที่สำคัญที่เราจะใช้กันมาก
‫นั่นเป็นเหตุผลว่าทำไมการเข้าใจความกว้างของมันจึงสำคัญมาก
‫ดังนั้นเราจึงเริ่มต้นด้วยการสร้างคลาสใหม่และฉันจะเรียกกล่องคลาสนี้
‫ไม่เป็นไร?
‫ดังนั้นจงเป็นชั้นเรียนที่ง่ายมาก
‫ดังนั้นคลาสกล่องนี้จะเป็นแค่คลาสที่มีตัวแปรจำนวนหนึ่ง
‫ไม่เป็นไร.
‫ตัวอย่างเช่น ต้องการคำนวณปริมาตรของกล่องตามความยาว ความสูง และความกว้างของกล่อง
‫ไม่เป็นไร.
‫เรามาสร้างตัวแปรเหล่านั้นกันเถอะ และตอนนี้ผมจะทำให้มันเป็นสาธารณะ
‫ไม่เป็นไร?
‫ผมจะทำให้อันนี้ยาวสาธารณะ แล้วก็อีกอัน อันนี้จะเป็นความสูง แล้วเราก็ต้องการความกว้าง
‫และสุดท้ายก็อยากได้วอลลุ่มด้วย
‫ดังนั้นปริมาณจะเป็นผลลัพธ์สุดท้ายของกล่องนี้
‫ไม่เป็นไร.
‫ตอนนี้ฉันมีตัวแปรหลายอย่าง
‫ทีนี้ ตัวแปรเหล่านั้นไม่ใช่ตัวแปรธรรมดา
‫อันที่จริงแล้วพวกมันคือตัวแปรสมาชิก ซึ่งหมายความว่าพวกมันคือตัวแปรในระดับของคลาส
‫ในกรณีนี้คือกล่องคลาส
‫ดังนั้นพวกเขาจึงมีผลกระทบโดยตรงต่อรูปลักษณ์ทั้งหมดของกล่องหรือโครงสร้างทั้งหมดของกล่อง
‫ไม่เป็นไร.
‫และเราจะมาดูกันว่าเราจะใช้ตัวแปรสมาชิกในวิธีที่ต่างกันหรือแม้แต่โครงสร้างที่ต่างกันได้อย่างไร
‫ซึ่งปลอดภัยกว่า
‫เพราะปัญหาคือมันเป็นสาธารณะ จึงไม่ปลอดภัย
‫เราจะดูว่าเราจะแก้ไขปัญหานี้ได้อย่างไร
‫ก่อนอื่น มาสร้างวิธีการใหม่กันที่นี่
‫และผมจะเรียกสิ่งนี้ว่า display info เพราะแนวคิดเบื้องหลังคือ มันจะแสดงแค่ความยาว
‫ความกว้าง ความสูง แล้วมันจะคำนวณปริมาตร และบอกเราว่าปริมาตรนั้นใหญ่แค่ไหน
‫ไม่เป็นไร.
‫ผมจะเขียนคำสั่งบรรทัดขวาสั้นๆ
‫ดังนั้นฉันจึงเข้าสู่แท็บคู่ CW ซึ่งสร้างคำสั่งบรรทัดด้านขวาของคอนโซลที่นี่สำหรับฉัน
‫และในนี้ผมจะบอกว่าความยาวจะเป็นค่าแรก และส่วนสูงจะเป็นค่าที่สอง
‫ดังนั้นฉันจึงใช้มันแบบนี้ และ with เป็นรายการที่สาม
‫ปริมาตรคือแล้วฉันมีรายการที่สี่
‫เอาล่ะ นี่คือคำสั่งบรรทัดขวาทั้งหมดของฉัน แล้วตัวแปรที่ฉันต้องการใช้คือความยาว
‫ความสูง
‫กับ.
‫และปริมาณ
‫ทีนี้ ปริมาณเป็นสิ่งที่ฉันต้องคำนวณตามความยาว ความสูง และความกว้าง
‫ดังนั้นฉันจะทำอย่างนั้น
‫ผมจะบอกว่าปริมาตรคือความยาวคูณด้วยความสูงคูณด้วยความกว้าง
‫การทำเช่นนี้จะสร้างโวลุ่มนี้หรือคำนวณปริมาตรเนื่องจากปริมาณเป็นผลมาจากการคำนวณนี้ที่นี่
‫ความยาว เวลา เวลาด้าน ความกว้าง มันจะเป็นปริมาตร
‫ไม่เป็นไร.
‫ตอนนี้ขอแยกเป็นบรรทัดๆ เพื่อให้อ่านง่ายขึ้น
‫ไม่เป็นไร.
‫ตอนนี้เรามีวิธีนี้แสดงข้อมูล
‫ตอนนี้ ไปต่อและบันทึกไฟล์นี้แล้วไปที่คีย์โปรแกรมของเรา
‫เราจะใช้คลาสนี้
‫เราจะสร้างวัตถุของคลาสนี้
‫เราจะสร้างวัตถุได้อย่างไร?
‫ดี.
‫ดังนั้นฉันจึงสร้างวัตถุใหม่ขึ้นมา
‫ฉันจะเรียกกล่องนี้ว่ากล่องเดียว และมันจะเป็นกล่องใหม่
‫นี่คือวิธีที่คุณสร้างวัตถุของคลาสหรืออินสแตนซ์ของคลาส
‫ฉันกำลังสร้างอินสแตนซ์ของกล่องคลาสนี้
‫ตัวแปรของ type box และ box เป็นสิ่งที่เราสร้างขึ้นเอง
‫สิ่งที่ฉันทำได้คือ ฉันสามารถกำหนดค่าให้กับมันได้
‫แล้วบอกว่า โอเค ความยาวจะเป็นสาม ความสูงจะเป็นสี่ และความกว้างจะเป็นห้า ประมาณนี้ นั่น.
‫แน่นอน ฉันต้องการเครื่องหมายเท่ากับที่นี่ด้วย เพื่อให้รหัสนี้ถูกต้อง
‫ตอนนี้ สิ่งที่ฉันทำได้คือ ไปข้างหน้าและโทรไปที่บ็อกซ์ดอท
‫แสดงข้อมูล
‫มันเจ๋งมาก
‫ฉันไม่ต้องการคำสั่งเส้นสว่างที่นี่อีกต่อไป
‫ตอนนี้ฉันสามารถบันทึกไฟล์นี้และดำเนินการได้
‫ให้เรียกใช้ไฟล์นี้และจะแสดงข้อมูลให้เราทราบในคอนโซล
‫เพื่อให้เรามีความยาวเป็นอิสระและสูงเป็นสี่และกว้างเป็นห้าดังนั้นปริมาตรคือ 60
‫ไม่เป็นไร.
‫ดังนั้นมันจึงได้ผล
‫ที่ที่ดี
‫ข้อมูลการแสดงผลนี้จึงได้ผล และแสดงเพียงรายละเอียดที่เราต้องการ
‫ตอนนี้สิ่งที่เราสามารถทำได้คือเราสามารถเปลี่ยนค่าหรือสิ่งที่เราสามารถเปลี่ยนค่าของตัวแปรสมาชิกของคลาสกล่องของเราได้
‫และเราสามารถทำได้เพราะพวกเขาเป็นสาธารณะ
‫ใช่ไหม
‫ดังนั้นอันนี้เป็นสาธารณะ
‫อันนี้เป็นสาธารณะ
‫อันนี้เป็นแบบสาธารณะด้วย
‫ดังนั้นพวกเขาทั้งหมดจึงเป็นที่สาธารณะ
‫นี่เป็นรหัสที่ไม่ปลอดภัยมากเพราะ ณ จุดนี้ หากคุณเขียนป้ายกำกับสมาชิกที่เป็นสาธารณะโดยสมบูรณ์ ทุกคนสามารถเปลี่ยนแปลงได้ทุกเมื่อ
‫ดังนั้นทุกคนที่สามารถสร้างออบเจ็กต์หรือทุกคลาสที่สามารถสร้างออบเจกต์ของกล่องได้
‫เราจะสามารถเปลี่ยนค่าเหล่านั้นทั้งหมดของอินสแตนซ์ของกล่องได้
‫ดังนั้นทุกคนที่เข้าถึงกล่องนี้สามารถเปลี่ยนแปลงได้ในขณะนี้
‫และนั่นก็เป็นสิ่งที่ทำให้เกิดปัญหามากมาย
‫ไปไกลกว่านี้เมื่อคุณตั้งโปรแกรมและทีมและสิ่งต่างๆ การทำเช่นนี้อาจกลายเป็นเรื่องยุ่งยากจริงๆ
‫จึงมีวิธีที่ดีกว่า
‫มีวิธีการใช้งานที่สะอาดกว่านั้นเพราะบางทีคุณอาจไม่ต้องการให้ปรับความยาวได้ บางทีคุณอาจต้องการให้ความยาวมีค่าที่แน่นอน
‫ไม่มีใครปรับมันได้
‫แล้วสิ่งที่คุณทำได้คือทำสิ่งนี้ได้
‫วาจาส่วนตัว
‫ดังนั้นความยาวของตัวแปรสมาชิกของฉันจะเป็นแบบส่วนตัว และฉันจะกำหนดค่าเริ่มต้นเป็นสามให้กับมัน
‫ตอนนี้ทุกกล่องที่ฉันสร้างจะมีค่าเท่ากับสาม
‫ดังนั้นทุกกล่องจะมีความยาวสามนิ้วหรือเมตร หรือเมตริกอะไรก็ตามที่คุณใช้อยู่
‫ตอนนี้ฉันไม่สามารถกำหนดความยาวได้อีกต่อไป
‫คุณจะเห็นว่าฉันได้รับข้อผิดพลาดที่นี่
‫ไม่สามารถเข้าถึงความยาวของกล่องได้เนื่องจากระดับการป้องกัน
‫ดังนั้นเราจึงเพิ่มระดับการป้องกันด้วยการทำให้เป็นแบบส่วนตัว
‫ตอนนี้เราปรับไม่ได้แล้ว
‫แล้วเราจะยังเปลี่ยนมันได้อย่างไร?
‫เราไม่สามารถ
‫ไม่ใช่ว่าเราเป็นแบบนี้
‫ดังนั้นเราจึงจำเป็นต้องดำเนินการบางอย่าง
‫เราจำเป็นต้องใช้วิธีอื่นในการเปลี่ยนความยาวของกล่อง
‫ไม่เป็นไร.
‫ในการทำเช่นนั้น สิ่งที่เราทำได้คือเราสามารถนำสิ่งที่เรียกว่า setters และ getters ไปใช้
‫ดังนั้นในกรณีนี้ เราไม่สามารถเข้าถึงความยาวของกล่องได้อีกต่อไป
‫สมมุติว่าผมอยากเขียนความยาว
‫ดังนั้นฉันต้องการปลอบความยาวกล่องบรรทัดขวาแล้วก็แค่เข้าไปที่ความยาวดอทของกล่อง
‫อย่างที่คุณเห็น ID ของฉันไม่แสดงตัวแปรให้ฉันดู
‫ฉันไม่สามารถเข้าถึงความยาวของจุดบ็อกซ์ได้ ดังนั้นฉันจึงไม่สามารถเปลี่ยนแปลงได้
‫แต่ยังอ่านไม่ออก
‫ไม่เป็นไร.
‫ดังนั้นฉันจึงไม่สามารถรับหรือตั้งค่าได้
‫นี่คือการตั้งค่า และนี่คือการรับตัวแปร
‫สิ่งเหล่านี้เป็นเงื่อนไขที่สำคัญมากในการตั้งค่าและรับ เนื่องจากตอนนี้สิ่งที่เราสามารถทำได้คือ เราสามารถสร้างเมธอดในคลาสกล่องของเรา
‫ซึ่งจะทำให้เราสามารถตั้งค่าหรือรับความยาวตัวแปรได้
‫ลองทำกันดูนะ
‫มาสร้างกัน
‫Sutter สาธารณะดังนั้น
‫Voit กำหนดความยาว
‫ดังนั้นตัวแปรนี้จะกำหนดความยาว
‫แล้วมันจะตั้งไว้เพื่ออะไร?
‫มันต้องการตัวแปรหรือพารามิเตอร์ตรงนี้
‫มันต้องการค่าที่นี่ที่สามารถตั้งค่าได้
‫ดังนั้นมันก็แค่จะไป
‫ต้องการจำนวนเต็มตรงนี้, และผมจะเรียกมันว่าหนึ่งความยาว
‫ดังนั้นมันจะกำหนดความยาว
‫ตอนนี้ฉันจะกำหนดความยาว ความยาวเท่ากัน
‫ตอนนี้มันทำให้สับสนและก็ไม่ถูกต้องด้วย
‫ดังนั้นฉันจึงได้รับคำเตือนที่นี่
‫อย่าแม้แต่จะรับข้อผิดพลาดที่นี่ เพราะอย่างที่คุณเห็น สีต่างกันใช่ไหม
‫ดังนั้นสีนี้กับสีนั้นจึงแตกต่างกันเล็กน้อย
‫อันนี้เป็นสีอ่อนมากและอันนี้เป็นสีน้ำเงินเข้ม
‫เกิดอะไรขึ้นที่นี่?
‫เพราะเราใช้คำนี้เหมือนกัน
‫เราใช้ความยาวตรงนี้
‫เราใช้ความยาวตรงนี้และตรงนี้ด้วย
‫ความยาวนี่ตรงนี้ จริงๆ แล้วความยาวนี่ หรือควรเป็นความยาวนี่ตรงนี้
‫ดังนั้นหากผมต้องการทำอย่างถูกต้อง ผมสามารถใช้คีย์เวิร์ดนี้กับมันได้
‫โดยการทำเช่นนั้น ฉันพูดว่า โอเค ฉันต้องการเปลี่ยนความยาว ซึ่งก็คือ
‫อะไหล่.
‫ของคลาสนี้เรียกว่ากล่อง
‫ผมอยากเปลี่ยนความยาวของวัตถุนี้
‫ดังนั้นในกรณีนี้ ของวัตถุที่สร้างขึ้นจากกล่องคลาส
‫เอาล่ะ ฉันจะได้รับมอบหมายความยาวเท่าไร
‫ดังนั้นความยาวใด ๆ ที่ส่งผ่านเมื่อเรียกความยาวที่ตั้งไว้
‫วิธีนี้ก็จะ
‫ตัวแปรนี้ที่นี่ และจะถูกตั้งค่าเป็นความยาว ซึ่งเป็นตัวแปรส่วนตัวของกล่องของฉัน
‫สิ่งนี้สำคัญมากเพราะสิ่งที่ฉันทำได้ตอนนี้คือตอนนี้ฉันสามารถไปข้างหน้าและเปลี่ยนความยาวของกล่องได้ด้วยการทำเช่นนั้น
‫กำหนดความยาว
‫ฉันยังสามารถตั้งค่าความยาวเป็น ตัวอย่างเช่น สาม และตอนนี้รันโค้ดอีกครั้ง และมันจะทำงานได้ดีอย่างสมบูรณ์
‫และมาดูกัน
‫ไม่เป็นไร.
‫เราอยู่ที่นั่น
‫ความยาวฟรี
‫ความสูงคือสี่และอื่น ๆ
‫ไม่เป็นไร.
‫ทีนี้ สมมุติว่าฉันไม่อยากมีสามเพราะมันเป็นค่าเริ่มต้น
‫ทีนี้ สมมุติว่าผมอยากมีความยาวเท่ากับสี่ ตอนนี้เราเห็นว่ามันใช้งานได้ และระดับเสียงก็ปรับด้วย
‫ดังนั้นมันจึงใช้ได้กับการคำนวณ
‫ดีมาก
‫ตอนนี้เราสามารถตั้งค่าตัวแปรที่เป็นตัวแปรสมาชิกของคลาสได้
‫นั่นเป็นสิ่งสำคัญ
‫เรากำลังพูดถึงคลาสที่แตกต่างกัน
‫ไม่ได้อยู่คณะเดียวกัน
‫ตอนนี้สิ่งที่เราทำได้คือพยายามเข้าถึงความยาวนี้เพราะมันเป็นส่วนตัวใช่ไหม
‫แล้วฉันจะเข้าถึงมันได้อย่างไร?
‫เพราะบางทีฉันอาจต้องการตัวแปรนี้ที่นี่ที่ไหนสักแห่ง
‫ฉันต้องการเข้าถึงความยาว แต่ฉันทำไม่ได้
‫ดังนั้นสิ่งที่ฉันสามารถทำได้คือสิ่งที่เรียกว่า getter
‫ดังนั้นความยาวสาธารณะ
‫และในกรณีนี้ type ต้องเป็นชนิดเดียวกับตัวแปรที่ฉันต้องการส่งคืน
‫และในกรณีนี้, ฉันต้องการคืนค่าของความยาวนี้หรือฉันต้องการคืนค่าความยาวเอง, จริงไหม?
‫ดังนั้นจึงเป็นประเภท int
‫ดังนั้นฉันต้องส่งคืนประเภท int สำหรับวิธีนี้
‫อันนี้จะยาว และนี่ก็เป็นแบบแผนในการใช้ชื่อ รับด้วยตัวพิมพ์ใหญ่ G แล้วตามด้วยชื่อของตัวแปรที่คุณต้องการได้
‫และในกรณีนี้ ฉันต้องการได้ความยาวผันแปร และตอนนี้ คุณก็แค่คืนค่าความยาว
‫ทีนี้ เพื่อให้แม่นยำยิ่งขึ้น เมื่อต้องการคืนค่าความยาวดอทนี้ แน่นอน คุณสามารถเขียนความยาวได้
‫แต่เมื่อคุณบวกค่านี้ มันชัดเจนมากว่าเรากำลังพูดถึงตัวแปรสมาชิกที่นี่
‫เรากำลังพูดถึงตัวแปรที่อยู่บนระดับสูงสุดของคลาสนี้
‫ดังนั้นจึงไม่อยู่ในวิธีการใด ๆ หรือคุณไม่สามารถเข้าถึงด้วยวิธีนี้ได้
‫แต่นี่คือความยาวเฉพาะที่เรากำลังพูดถึง
‫ดังนั้นหากฉันคลิกที่มัน คุณจะเห็น ID ของฉันทำเครื่องหมายโดยอัตโนมัติ
‫และมันยังทำเครื่องหมายความยาวนี้ไว้ด้านล่างด้วย
‫ตอนนี้ฉันสามารถหาความยาวได้โดยใช้ get length โดยใช้วิธีการสาธารณะนี้
‫และสิ่งสำคัญคือต้องเปิดเผยต่อสาธารณะ เพราะถ้าไม่เป็นสาธารณะ ฉันก็จะไม่สามารถเข้าถึงได้
‫ในกรณีนี้ ฉันกำลังบันทึกกล่องอีกครั้ง และตอนนี้ฉันได้รับความยาวโดยเรียกวิธีนี้ว่า get length และตอนนี้มันก็ใช้งานได้อีกครั้ง
‫ตอนนี้ฉันสามารถไปข้างหน้าและแน่นอนเขียนอย่างถูกต้องที่นี่เช่นกันและลองเรียกใช้อีกครั้ง
‫และมันบอกว่าความยาวของกล่องคือ
‫และในกรณีนี้ มันคือสี่
‫ไม่เป็นไร.
‫นี่เป็นเพียงการเตรียมคุณสมบัติ แต่เป็นแนวคิดที่สำคัญ
‫Setters และ getters นี่คือสิ่งที่คุณจะเห็นค่อนข้างน้อยเช่นกัน
‫ดังนั้นจึงเป็นแนวทางที่ดี แต่มีวิธีการที่ง่ายกว่าและเร็วกว่ามาก
‫นี่เป็นเพียงวิธีเดียวที่จะทำได้
‫แต่ฉันจะแสดงให้คุณเห็นอีกสองหรือสามวิธีในการทำให้เร็วขึ้นและมีการป้องกันแบบเดียวกัน
‫เพราะสิ่งที่เราทำที่นี่เรียกว่าการห่อหุ้ม
‫เรากำลังห่อหุ้มแกนของความยาวของเรา
‫คำจำกัดความของ Wikipedia คือการห่อหุ้มหมายถึงการสร้างข้อมูลด้วยวิธีการที่ทำงานกับข้อมูลนั้น
‫หรือการจำกัดการเข้าถึงโดยตรงไปยังส่วนประกอบบางอย่างของวัตถุ
‫นั่นคือสิ่งที่เรากำลังทำอยู่
‫เรากำลังจำกัดการเข้าถึงส่วนประกอบที่เรียกว่า length ซึ่งเป็นส่วนหนึ่งของอ็อบเจกต์หรือคลาสบ็อกซ์ที่เราสามารถสร้างอ็อบเจกต์ได้
‫ไม่เป็นไร.
‫และเราสร้าง setters และ getters เหล่านี้เพื่อที่จะยังคงปรับเปลี่ยน
‫ตอนนี้ ความงามคือคุณสามารถกำหนดวิธีที่คุณต้องการห่อหุ้มได้
‫ในกรณีนี้ ฉันทำให้ทั้งคู่เป็นสาธารณะ
‫แต่ถ้าฉันไม่ต้องการให้เปิดเผยต่อสาธารณะล่ะ
‫จะเป็นอย่างไรถ้าฉันต้องการให้เป็นเช่นนี้
‫ไม่เหมาะสม.
‫สมมติว่าฉันไม่ต้องการให้ใครกำหนดความยาวของกล่องของฉันได้
‫สิ่งที่ฉันทำได้คือทำให้อันนี้เป็นส่วนตัวได้
‫ดังนั้นตอนนี้เท่านั้น
‫คลาสที่สืบทอดมาจากกล่องของเราหรือตัวกล่องนั้นจะสามารถกำหนดความยาวจากภายนอกได้
‫เราไม่สามารถกำหนดความยาวได้อีกต่อไป
‫ดังนั้นการตั้งค่าความยาวที่นี่ โค้ดบรรทัดนี้ใช้ไม่ได้อีกต่อไปเพราะฉันตัดสินใจว่า
‫โอเค ถ้าใครต้องการกำหนดความยาว ฉันอยากเป็นแค่ตัวคลาสเองหรือสืบทอดคลาส แต่ไม่ใช่คลาสที่อยู่นอกตัวฉัน
‫นี่คือสิ่งที่คุณสามารถแก้ไขได้โดยตรงจากที่นี่
‫คุณยังสามารถพูดได้ว่า โอเค แม้แต่ความยาวก็ไม่ได้รับอนุญาตจากที่นี่
‫ไม่เป็นไร.
‫แต่ตอนนี้ที่เจ๋งคือคุณสามารถไปข้างหน้าและปรับเปลี่ยนสิ่งเหล่านั้นได้
‫สมมุติว่ามีคนต้องการระดับเสียง
‫และ ณ จุดนี้ เรายังไม่ได้ตั้งค่าระดับเสียง
‫สิ่งที่เราสามารถทำได้แทน เราสามารถพูดต่อสาธารณะ รับปริมาณ
‫และตอนนี้ถ้าใครต้องการได้ปริมาณ เราจะไม่เพียงแค่คืนปริมาณ แต่สิ่งที่เราจะทำคือเราจะคืน
‫ความยาวจุดนี้คูณด้วยความสูงของจุดนี้ คูณด้วยความกว้างของจุดนี้
‫ดังนั้นหากใครอยากได้วอลุ่มก็จะไม่ได้วอลุ่มโดยตรง
‫ดังนั้นอย่าเข้าถึงตัวแปรนี้โดยตรง ตัวแปรปริมาณนี้ แต่จริงๆ แล้วพวกเขาจะได้ผลลัพธ์จากการคำนวณ
‫ดังนั้นตอนนี้ ถ้าฉันบันทึกสิ่งนี้และดำเนินการต่อ และที่นี่ฉันใช้ get volume จากนั้น box volume คือ และตอนนี้จะแสดงระดับเสียงของกล่อง
‫สมมุติว่ากล่อง ปริมาตรคือ 60
‫โดยทั่วไปแล้ว สิ่งที่เราทำกับ setters และ getter เหล่านี้ก็คือ เราไม่ได้ให้การเข้าถึงตัวแปรโดยตรงแก่ตัวแปรของสมาชิก
‫แต่เราให้การเข้าถึงเฉพาะวิธีการที่สามารถปรับตัวแปรได้ และเราสามารถตัดสินใจเองได้ว่าเราจะผ่านอย่างไร
‫ค่านี้ ดังนั้นวิธีที่เราแจกค่าในกรณีนี้ด้วย get volume เราตัดสินใจว่า โอเค เราไม่ต้องการให้ปริมาตรแก่คุณ แต่เราต้องการให้ผลลัพธ์ของการคำนวณแก่คุณ
‫หรือเราอาจบอกว่า โอเค ถ้าใครต้องการได้ปริมาตร เราจะบอกว่า มันจะเป็นปริมาตรคูณสอง
‫หรืออะไรประมาณนั้น
‫หรือถ้าใครอยากจะกำหนดความยาวและมันเป็นสิ่งที่ติดลบ
‫สมมติว่าเราทำให้เป็นสาธารณะอีกครั้ง เป็นโมฆะสาธารณะ กำหนดความยาว และตอนนี้เราตรวจสอบอีกครั้งว่ายาวหรือไม่
‫มีค่าน้อยกว่าศูนย์
‫เราจะโยนข้อผิดพลาด โยนขนาดข้อยกเว้นใหม่หรืออันนี้ ความยาวควรมากกว่าศูนย์
‫ไม่เป็นไร.
‫ดังนั้นหากความยาวน้อยกว่าศูนย์ เราก็ส่งข้อยกเว้น และนี่จะทำให้โปรแกรมของเราขัดข้อง
‫ดังนั้นบรรทัดนี้จะไม่ถูกดำเนินการ
‫ทีนี้มาลองทำกัน
‫ไปที่โปรแกรมของเราและตั้งค่าความยาวกล่องเป็นค่าลบ
‫ลองตั้งค่าเป็นลบสี่
‫ตอนนี้เราเรียกใช้อีกครั้งและเราจะเห็นว่าเราได้รับข้อยกเว้น
‫ดังนั้นโปรแกรมของเราจึงขัดข้องและเราได้รับข้อยกเว้นที่นี่ว่า
‫ความยาวข้อยกเว้นของระบบควรมากกว่าศูนย์
‫คุณจะเห็นว่าด้วยการโยนข้อยกเว้น เราสามารถโยนข้อยกเว้นของเราเองได้
‫เราสามารถพูดได้ว่าข้อยกเว้นควรพูดอะไรและควรมีความหมาย
‫ควรเป็นสิ่งที่มีประโยชน์และทำให้ชัดเจนว่าข้อผิดพลาดคืออะไร
‫ในกรณีนี้ เราสร้างข้อผิดพลาดเนื่องจากเราตั้งค่าความยาวเป็นค่าที่น้อยกว่าศูนย์
‫ไม่เป็นไร.
‫นั่นคือพลังของ setters และ getter เพราะคุณอาจสงสัยว่าทำไมฉันถึงต้องการ setters เหล่านั้นและหาเรา?
‫เหตุใดฉันจึงไม่สามารถเข้าถึงความยาวได้โดยตรง ถ้าฉันมีเพียงตัวตั้งค่าและตัวรับ?
‫ตอนนี้คุณเห็นแล้ว คุณสามารถตัดสินใจได้อย่างแข็งขันว่าจะตั้งค่าอะไรและอะไรจะถูกลืม
‫หากมีใครพยายามเข้าถึงตัวแปรนี้และเปลี่ยนแปลงมัน หรือแม้แต่ดึงมันออกมา
‫ไม่เป็นไร.
‫ดังนั้นมันจึงนานกว่าที่ฉันคาดไว้มาก และฉันกำลังวางแผนที่จะทำวิดีโอนี้
‫แต่ฉันต้องการทำให้ทุกอย่างชัดเจน เพราะนี่จะเป็นก้าวที่สำคัญสำหรับแนวคิดถัดไป
‫ซึ่งจะเป็นคุณสมบัติ
‫คุณจะเห็นว่าเราจะสรุปทั้งหมดนี้ได้อย่างไร หรือย่อให้สั้นลงมากโดยใช้คุณสมบัติ
‫ฉันจะบอกว่าไปที่วิดีโอหน้าที่เราจะไปดูวิธีใช้คุณสมบัติและความสัมพันธ์ของคุณสมบัติกับสิ่งที่เราได้เรียนรู้ในวิดีโอนี้
‫ฉันหวังว่ามันจะสมเหตุสมผล
‫หากคุณมีคำถามใด ๆ โปรดแจ้งให้เราทราบ
‫และใช่ เพียงแค่เขียนความคิดเห็นในการอภิปรายของหลักสูตร
‫และยังไงก็ขอบคุณมากสำหรับทุกคนที่ให้ความคิดเห็นเพราะมันช่วยให้ฉันทำหลักสูตรให้ดีขึ้นได้จริงๆ
‫หากคุณเพียงแค่ดูหลักสูตรนี้อย่างเฉยเมยก็ไม่เป็นไร
‫แต่ฉันซาบซึ้งมากหากคุณมีข้อเสนอแนะและเป็นประโยชน์ และช่วยให้ฉันทราบว่ามีบางสิ่งไม่ชัดเจน
‫ณ จุดใด
‫เพราะถ้าบอกไปว่า โอเค วิดีโอนี้ขยะเต็มเลย มันจะไม่มีประโยชน์อย่างที่คุณว่า
‫โอเค ฉันไม่เข้าใจแนวคิด A ในนาทีที่ 5 หรืออะไรซักอย่าง ฉันก็เข้าใจปัญหามากขึ้นแล้วว่าอะไรเป็นอะไร
‫เป็น.
‫ขอบคุณอีกครั้งและพบกันใหม่ในวิดีโอหน้า