Java에서 내부 클래스를 구현하는 방법?



Java의 내부 클래스는 다른 클래스의 구성원 인 하나의 클래스를 의미합니다. 이 기사는이 수업을 풀 때 도움이 될 것입니다.

Java의 내부 클래스는 다른 클래스의 구성원 인 하나의 클래스를 의미합니다. 에 , 다양한 유형의 내부 클래스가 있습니다. 이 기사는 이러한 모든 수업을 풀 수 있도록 도와줍니다. 다음 포인터에 대해 자세히 설명합니다.

이 Inner Class In Java 기사를 시작하겠습니다.





자바의 내부 클래스

중첩 된 내부 클래스

이 클래스는 외부 클래스의 개인 인스턴스 값에 액세스 할 수 있습니다. 다른 클래스 내에 하나의 클래스를 작성하는 것도 Java에서 허용됩니다. 내부에 작성된 클래스는 중첩 클래스로 알려져 있으며 내부 클래스를 보유하는 클래스는 외부 클래스로 알려져 있습니다.



통사론

클래스 외부 {클래스 내부 {}}

아래 주어진 예에서 우리는 내부 클래스를 비공개로 만들고 메소드의 도움으로 클래스에 액세스합니다.



class Outer_place {int num private class Inner_place {public void print () {System.out.println ( 'It is an inner class')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}

산출

출력-Java의 내부 클래스-Edureka

여기서 Outer place는 외부 클래스, Inner place는 내부 클래스라고합니다.

이 Inner Class In Java 기사로 넘어 가서,

비공개 회원에 액세스

내부 클래스는 클래스의 개인 멤버에도 액세스하는 데 사용됩니다. 액세스 할 수있는 개인 멤버가있는 클래스가 있다고 가정하십시오. 이제 클래스 내에 내부 클래스를 작성하고 내부 클래스 내의 메서드에서 전용 멤버에 액세스합니다.

다음은 예입니다.

class Outer_place {private int num = 162 class 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에서는 메서드 내에서 클래스를 작성할 수 있으며이를 로컬 유형이라고합니다. 모든 지역 변수와 마찬가지로 내부 클래스의 범위는 메서드 내에서 제한됩니다.

다음 예제는 메서드 로컬 내부 클래스가 구현되는 방법을 보여줍니다.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ( 'method for inner classes'+ 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 = new AnonymousInner () {public void method () {}}

abstract class 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 ( 'example of anonymous 내부 클래스 ')}} inner.mymethod ()}}

산출

이 Inner Class In Java 기사로 넘어 가서,

십진수를 이진 파이썬으로 변환

익명 내부 클래스의 인수로

여기서 메소드가 인터페이스, 추상 클래스 또는 구체적 클래스의 객체를 수락하면 인터페이스를 구현하고 객체를 메서드에 전달하고 추상 클래스를 확장 할 수 있습니다.

통사론

obj. 메소드 (new class () {public void do {}})

// interface interface Message {String greet ()} public class My_class {//이 메소드에 의해 인터페이스 메시지의 객체가 허용됩니다. public void displayMessage (Message m) {System.out.println (m.greet () + ', 예제 anonymous inner class as argument ')} public static void main (String args []) {// Instantiating of class My_class obj = new My_class () // 익명 내부 클래스를 인수로 전달 obj.displayMessage (new Message () {public String greet () {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 ( '나는 Flavor1Demo 클래스에 존재했습니다')}} public static void main (String [] args) {d.show ()}}

산출

이 Inner Class In Java 기사로 넘어 가서,

지정된 구현 자로서의 익명 내부 클래스 상호 작용

소스 코드

class Flavor2Demo {// Hello 인터페이스를 구현하는 클래스 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 기사로 넘어 가서,

정적 중첩 클래스

이러한 클래스는 기술적으로 내부 클래스로 알려져 있지 않습니다. 이러한 클래스는 외부 클래스의 정적 멤버와 유사합니다. 정적 중첩 클래스는 외부 클래스의 변수 및 메서드에 대한 액세스 권한이 없습니다. 외부 클래스를 인스턴스화 할 필요가 없습니다. 정적 멤버를 사용하여 직접 액세스 할 수 있습니다.

통사론

클래스 외부 {정적 클래스 nested_example {}}

public class Outer {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에서 제공합니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 기사의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.