คลาสภายในใน java หมายถึงคลาสหนึ่งซึ่งเป็นสมาชิกของคลาสอื่น ใน มีคลาสภายในหลายประเภท บทความนี้จะช่วยให้คุณคลี่คลายคลาสเหล่านี้ทั้งหมด คำแนะนำต่อไปนี้จะกล่าวถึงในรายละเอียด
ดังนั้นให้เราเริ่มต้นด้วยบทความ Inner Class In Java นี้
ชั้นในใน Java
ชั้นในที่ซ้อนกัน
คลาสนี้มีสิทธิ์เข้าถึงค่าอินสแตนซ์ส่วนตัวของคลาสภายนอก อนุญาตให้เขียนหนึ่งคลาสภายในคลาสอื่นใน Java คลาสที่เขียนภายในเป็นคลาสที่ซ้อนกันและคลาสที่เก็บคลาสภายในเรียกว่าคลาสนอก
ไวยากรณ์
คลาสชั้นนอก {class innerplace {}}
ตัวอย่าง
ในตัวอย่างด้านล่างเรากำลังทำให้คลาสภายในเป็นส่วนตัวและเข้าถึงคลาสด้วยความช่วยเหลือของวิธีการ
คลาส Outer_place {int num คลาสส่วนตัว Inner_place {public void print () {System.out.println ('It is an inner class')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} คลาสสาธารณะ My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}
เอาต์พุต
ที่นี่ชั้นนอกคือชั้นนอกและชั้นในเรียกว่าชั้นใน
การดำเนินการต่อด้วยบทความ Inner Class In Java นี้
การเข้าถึงสมาชิกส่วนตัว
ชั้นเรียนด้านในใช้เพื่อเข้าถึงสมาชิกส่วนตัวของชั้นเรียนด้วย สมมติว่ามีชั้นเรียนที่มีสมาชิกส่วนตัวสามารถเข้าถึงได้ ตอนนี้เขียนคลาสภายในภายในคลาสและเข้าถึงสมาชิกส่วนตัวจากวิธีการภายในคลาสภายใน
นี่คือตัวอย่าง
คลาส Outer_place {private int num = 162 คลาส Inner_place {public int getNum () {System.out.println ('It is a getnum method of inner class:') return num}}} public class My_class {public static void main (String args []) {Outer_place outer = new Outer_place () Outer_place.Inner_place inner = outer.new Inner_place () System.out.println (inner.getNum ())}}
เอาต์พุต
สแกนเนอร์ทำอะไรใน java
กำลังเดินทางไป,
วิธีการเรียนภายในท้องถิ่น
ใน Java คุณสามารถเขียนคลาสภายในเมธอดและจะเรียกว่าประเภทโลคัล เช่นเดียวกับตัวแปรโลคัลทั้งหมดขอบเขตของคลาสภายในจะถูก จำกัด ไว้ในเมธอด
ตัวอย่าง
ตัวอย่างต่อไปนี้จะแสดงวิธีการใช้งานเมธอดคลาสภายใน
คลาสสาธารณะ Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('method for inner คลาส' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outer = new Outerplace () outer.my_Method ()}}
เอาต์พุต
การดำเนินการต่อด้วยบทความ Inner Class In Java นี้
ชั้นในที่ไม่ระบุชื่อ
คลาสภายในใด ๆ ที่ประกาศโดยไม่มีชื่อคลาสเรียกว่าคลาสภายในที่ไม่ระบุชื่อ ในกรณีของคลาสภายในที่ไม่ระบุชื่อเราจะสร้างอินสแตนซ์และประกาศในเวลาเดียวกัน
เมื่อใดก็ตามที่เราต้องการลบล้างเมธอดของคลาสหรืออินเทอร์เฟซเราจะใช้คลาสนี้
ไวยากรณ์
AnonymousInner obj1 = AnonymousInner ใหม่ () {public void method () {}}
ตัวอย่าง
คลาสนามธรรม AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('ตัวอย่างของ anonymous ชั้นใน ')}} inner.mymethod ()}}
เอาต์พุต
การดำเนินการต่อด้วยบทความ Inner Class In Java นี้
เป็นอาร์กิวเมนต์ของชั้นในที่ไม่เปิดเผยตัวตน
ในกรณีนี้หากเมธอดยอมรับอ็อบเจ็กต์ของอินเทอร์เฟซคลาสนามธรรมหรือคลาสคอนกรีตเราจะสามารถใช้อินเทอร์เฟซส่งผ่านอ็อบเจ็กต์ไปยังเมธอดและขยายคลาสนามธรรม
ไวยากรณ์
obj. วิธีการ (คลาสใหม่ () {โมฆะสาธารณะทำ {}})
ตัวอย่าง
// อินเทอร์เฟซอินเทอร์เฟซข้อความ {String ทักทาย ()} คลาส My_class {// อ็อบเจ็กต์ของข้อความอินเทอร์เฟซได้รับการยอมรับโดยวิธีนี้โมฆะสาธารณะ displayMessage (ข้อความ m) {System.out.println (m.greet () + 'ตัวอย่าง คลาสภายในที่ไม่ระบุชื่อเป็นอาร์กิวเมนต์ ')} โมฆะแบบคงที่สาธารณะ main (String args []) {// การสร้างอินสแตนซ์ของคลาส My_class obj = new My_class () // ผ่านคลาสภายในที่ไม่ระบุชื่อเป็นอาร์กิวเมนต์ obj.displayMessage (ข้อความใหม่ () {public สตริงคำทักทาย () {return 'Hey'}})}}
เอาต์พุต
การดำเนินการต่อด้วยบทความ Inner Class In Java นี้
คลาสภายในที่ไม่ระบุชื่อของคลาสย่อยที่ระบุ
รหัสแหล่งที่มา
class Demo {void show () {System.out.println ('i was in show method of class')}} class Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('i was present in Flavour1Demo class')}} public static void main (String [] args) {d.show ()}}
เอาต์พุต
การดำเนินการต่อด้วยบทความ Inner Class In Java นี้
คลาสภายในที่ไม่ระบุชื่อเป็นตัวดำเนินการตามที่ระบุ อินเตอร์เฟซ
รหัสแหล่งที่มา
คลาส Flavour2Demo {// คลาสที่ใช้ Hello interface static Hello h = new Hello () {public void show () {System.out.println ('i was present in anonymous class')}} public static void main (String [] args) {h.show ()}} อินเทอร์เฟซสวัสดี {void show ()}
เอาต์พุต
การดำเนินการต่อด้วยบทความ Inner Class In Java นี้
คลาสที่ซ้อนกันแบบคงที่
คลาสเหล่านี้ไม่รู้จักกันในทางเทคนิคว่าเป็นคลาสภายใน คลาสเหล่านี้คล้ายกับสมาชิกแบบคงที่ของคลาสนอก คลาสที่ซ้อนกันแบบคงที่ไม่มีสิทธิ์เข้าถึงตัวแปรและวิธีการของคลาสภายนอก เราไม่จำเป็นต้องสร้างอินสแตนซ์คลาสภายนอกสามารถเข้าถึงได้โดยตรงโดยใช้สมาชิกแบบคงที่
ไวยากรณ์
คลาสภายนอก {Static class nested_example {}}
ตัวอย่าง
คลาสสาธารณะชั้นนอก {static class Nested_Example {public void my_method () {System.out.println ('It is the nested class')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}
เอาต์พุต
ดังนั้นเราจึงมาถึงจุดสิ้นสุดของบทความนี้ หากคุณต้องการเรียนรู้เพิ่มเติมตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
กำหนดเส้นทางคลาสสำหรับ java
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบทความนี้และเราจะติดต่อกลับโดยเร็วที่สุด