วิธีการติดตั้ง Nested Class ใน Java

บทความนี้เกี่ยวกับคลาสที่ซ้อนกันใน java จะช่วยให้คุณเข้าใจวิธีการใช้คลาสที่ซ้อนกันด้วยความช่วยเหลือของโปรแกรมตัวอย่าง

ใน Java สามารถกำหนดคลาสภายในคลาสอื่นได้และคลาสดังกล่าวเรียกว่าคลาสที่ซ้อนกัน คลาสเหล่านี้ช่วยให้คุณสามารถจัดกลุ่มคลาสแบบมีเหตุผลที่ใช้ในที่เดียวเท่านั้น สิ่งนี้จะเพิ่มการใช้การห่อหุ้มและสร้างรหัสที่อ่านได้และบำรุงรักษาได้มากขึ้น บล็อกนี้เกี่ยวกับ 'คลาสที่ซ้อนกันใน Java' จะให้คำแนะนำอย่างรวดเร็วเกี่ยวกับคลาสที่ซ้อนกันในไฟล์ . ด้านล่างนี้เป็นหัวข้อที่กล่าวถึงในบล็อกนี้:

คลาสที่ซ้อนกันใน Java

ชั้นเรียน เขียนภายในคลาสเรียกว่าคลาสที่ซ้อนกันในขณะที่คลาสที่เก็บคลาสภายในเรียกว่าคลาสนอก ด้านล่างนี้เป็นจุดที่ควรจำสำหรับคลาสที่ซ้อนกันใน Java -





  • ขอบเขตของคลาสที่ซ้อนกันถูกล้อมรอบด้วยคลาสที่ปิดล้อม
  • คลาสที่ซ้อนกันสามารถเข้าถึงสมาชิกของคลาสที่ถูกซ้อนกัน แต่คลาสที่ปิดล้อมไม่สามารถเข้าถึงสมาชิกของคลาสที่ซ้อนกันได้
  • คลาสที่ซ้อนกันคือคลาสที่ปิดล้อมสมาชิกคลาส
  • คลาสที่ซ้อนกันสามารถประกาศเป็นสาธารณะส่วนตัวได้รับการป้องกันหรือแพ็กเกจส่วนตัว

ประเภทของคลาสที่ซ้อนกัน

ชั้นซ้อนภายใน / ไม่คงที่: ใน Java คลาสที่ไม่คงที่เป็นกลไกการรักษาความปลอดภัย คลาสไม่สามารถเชื่อมโยงกับ เข้าถึงแก้ไข ส่วนตัว แต่ถ้าคุณมีคลาสเป็นสมาชิกของคลาสอื่นคลาสที่ไม่คงที่สามารถทำให้เป็นแบบส่วนตัวได้

ประเภทของคลาสภายในและลบ



  • ชั้นใน
  • Method-local Inner Class
  • ชั้นในนิรนาม

ชั้นใน

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

class Outer_Test {int num // inner class private class Inner_Test {public void print () {System.out.println ('This is an Our inner class')}} // การเข้าถึงคลาสภายในจาก method void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// การสร้างอินสแตนซ์คลาสด้านนอก Outer_Test outer = new Outer_Test () // การเข้าถึง display_Inner () เมธอด . outer.display_Inner ()}}

เอาต์พุต
ชั้นในที่ซ้อนกัน - Edureka

ความแตกต่างระหว่าง xml และ html

Method-local Inner Class

ใน Java คลาสสามารถเขียนได้ภายในไฟล์ และเป็นประเภทท้องถิ่น เช่นเดียวกับตัวแปรโลคัลขอบเขตของคลาสภายในถูก จำกัด ไว้ภายในเมธอด คลาสภายในของวิธีการภายในถูกรวมไว้เฉพาะในเมธอดที่กำหนดคลาสภายใน โปรแกรมด้านล่างแสดงวิธีใช้คลาสภายในของ method-local



คลาสสาธารณะ Outerclass {// วิธีการอินสแตนซ์ของคลาสนอกเป็นโมฆะ my_Method () {int num = 1001 // method-local คลาสภายในคลาส StarInner_Test {public void print () {System.out.println ('นี่คือคลาสภายในของดาว' + num)}} // end of inner class // การเข้าถึงคลาสชั้นใน StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass outer = new Outerclass () outer. my_Method ()}}

เอาต์พุต

แผนภูมิโดนัทเทียบกับแผนภูมิวงกลม

ชั้นในนิรนาม

คลาสภายในที่ไม่ระบุชื่อคือคลาสภายในที่ประกาศโดยไม่มีชื่อคลาส ในคลาสภายในที่ไม่ระบุชื่อเราจะประกาศและสร้างอินสแตนซ์พร้อมกัน โดยทั่วไปจะใช้เมื่อคุณต้องการแทนที่เมธอดของคลาสหรืออินเทอร์เฟซ โปรแกรมด้านล่างแสดงวิธีใช้คลาสภายในที่ไม่ระบุชื่อ -

คลาสนามธรรม AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('นี่คือ ตัวอย่างคลาสทดสอบภายในที่ไม่ระบุชื่อ ')}} inner.mytest ()}}

เอาท์พุท -

คลาสซ้อนแบบคงที่: ถึง เป็นคลาสที่ซ้อนกันซึ่งเป็นสมาชิกแบบคงที่ของคลาสภายนอก ซึ่งแตกต่างจากคลาสภายในคลาสที่ซ้อนกันแบบคงที่ไม่สามารถเข้าถึงตัวแปรสมาชิกของคลาสภายนอกได้เนื่องจากคลาสที่ซ้อนกันแบบคงที่ไม่ต้องการอินสแตนซ์ของคลาสภายนอก ดังนั้นจึงไม่มีการอ้างอิงถึงคลาสนอกกับ OuterClass นี้ ไวยากรณ์ของคลาสซ้อนแบบคงที่คือ -

คลาส MyOuter {คลาสคงที่ Nested_Test {}}

ตัวอย่างของ Static Nested Class

คลาสสาธารณะภายนอก {คลาสคงที่ Nested_Test {โมฆะสาธารณะ my_method () {System.out.println ('นี่คือคลาสทดสอบที่ซ้อนกันของ Edureka')}} โมฆะแบบคงที่สาธารณะ main (String args []) {Outer.Nested_Test ซ้อน = new Outer. Nested_Test () nested.my_method ()}}

เอาต์พุต

ความแตกต่างระหว่างคลาสที่ซ้อนกันแบบคงที่และไม่คงที่

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

คลาสที่ซ้อนกันแบบไม่คงที่สามารถเข้าถึงสมาชิกทั้งหมดของคลาสภายนอกและสามารถอ้างถึงได้โดยตรงในลักษณะเดียวกับที่สมาชิกอื่น ๆ ที่ไม่คงที่ของคลาสภายนอกทำ

ก่อนที่เราจะมาถึงตอนท้ายของบทความนี้ให้เรามาดูประเด็นสำคัญบางประการ

ประเด็นสำคัญที่ต้องจำ

  • ชั้นในจะถือว่าเป็นสมาชิกปกติของชั้นเรียน
  • เนื่องจากคลาสชั้นในเป็นสมาชิกของคลาสชั้นนอกคุณจึงสามารถใช้ตัวแก้ไขการเข้าถึงที่แตกต่างกันเช่นคลาสที่มีการป้องกันส่วนตัวกับคลาสภายในของคุณ
  • เนื่องจากคลาสที่ซ้อนกันเป็นสมาชิกของคลาสที่ปิดล้อมคุณจึงสามารถใช้ (dot) สัญกรณ์เพื่อเข้าถึงคลาสที่ซ้อนกันและสมาชิก
  • การใช้คลาสที่ซ้อนกันทำให้โค้ดของคุณอ่านง่ายขึ้นและให้ข้อมูลที่ดีขึ้น การห่อหุ้ม .
  • ชั้นในสามารถเข้าถึงสมาชิกคนอื่น ๆ ของชั้นนอกแม้ว่าพวกเขาจะประกาศว่าเป็นส่วนตัวก็ตาม

ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบล็อกนี้เกี่ยวกับคลาสที่ซ้อนกันใน Java หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Java โปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

ตัวแปรอินสแตนซ์ในตัวอย่าง java

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'Nested Class in Java' และเราจะติดต่อกลับโดยเร็วที่สุด