Java에서 중첩 클래스를 구현하는 방법은 무엇입니까?



Java의 중첩 클래스에 대한이 기사는 예제 프로그램의 도움으로 중첩 클래스를 구현하는 방법을 이해하는 데 도움이 될 것입니다.

Java에서는 클래스를 다른 클래스 내에 정의 할 수 있으며 이러한 클래스를 중첩 클래스라고합니다. 이러한 클래스는 한 위치에서만 사용되는 클래스를 논리적으로 그룹화하는 데 도움이됩니다. 이것은 캡슐화의 사용을 증가시키고 더 읽기 쉽고 유지하기 쉬운 코드를 생성합니다. 'Nested Class in Java'에 대한이 블로그는 중첩 클래스에 대한 간단한 소개를 제공합니다. . 다음은이 블로그에서 다루는 주제입니다.

자바의 중첩 클래스

그만큼 수업 클래스 내에서 작성된 것을 중첩 클래스라고하며 내부 클래스를 보유하는 클래스를 외부 클래스라고합니다. 다음은 Java의 중첩 클래스에 대해 기억해야 할 몇 가지 사항입니다.





  • 중첩 클래스의 범위는 둘러싸는 클래스에 의해 제한됩니다.
  • 중첩 된 클래스는 중첩 된 클래스의 멤버에 액세스 할 수 있습니다. 그러나 바깥 쪽 클래스는 중첩 클래스의 멤버에 액세스 할 수 없습니다.
  • 중첩 클래스는 둘러싸는 클래스 멤버입니다.
  • 중첩 클래스는 public, private, protected 또는 package-private로 선언 될 수 있습니다.

중첩 된 클래스 유형

내부 / 비 정적 중첩 클래스 : Java에서 비 정적 클래스는 보안 메커니즘입니다. 클래스는 액세스 편집 private이지만 다른 클래스의 멤버로 클래스가있는 경우 비 정적 클래스를 private로 만들 수 있습니다.

내부 클래스 유형 및 마이너스



  • 이너 클래스
  • 메서드 로컬 내부 클래스
  • 익명 내부 클래스

이너 클래스

내부 클래스를 만들려면 클래스 내에서 클래스를 작성하기 만하면됩니다. 내부 클래스는 개인이 될 수 있으며 목적 수업 밖에서. 다음은 내부 클래스를 만드는 프로그램입니다. 이 예에서 내부 클래스는 비공개로 설정되고 메서드를 통해 클래스에 액세스됩니다.

class Outer_Test {int num // 내부 클래스 private class Inner_Test {public void print () {System.out.println ( 'This is an Our inner class')}} // 메서드에서 내부 클래스에 액세스 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

메서드 로컬 내부 클래스

Java에서 클래스는 그리고 그것은 지역 유형입니다. 지역 변수와 마찬가지로 내부 클래스의 범위는 메서드 내에서 제한됩니다. 메서드 로컬 내부 클래스는 내부 클래스가 정의 된 메서드 내에서만 통합됩니다. 아래 프로그램은 메서드 로컬 내부 클래스를 사용하는 방법을 보여줍니다.



public class Outerclass {// 외부 클래스의 인스턴스 메소드 void my_Method () {int num = 1001 // method-local inner class class StarInner_Test {public void print () {System.out.println ( 'This is star inner class' + num)}} // 내부 클래스의 끝 // 내부 클래스에 액세스 StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass outer = new Outerclass () outer. my_Method ()}}

산출

요리사와 인형은 무엇입니까

익명 내부 클래스

익명 내부 클래스는 클래스 이름없이 선언 된 내부 클래스입니다. 익명의 내부 클래스에서 우리는 동시에 선언하고 인스턴스화합니다. 일반적으로 클래스 또는 인터페이스의 메서드를 재정의해야 할 때 사용됩니다. 아래 프로그램은 익명의 내부 클래스를 사용하는 방법을 보여줍니다.

abstract class 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 ( 'This is an 익명 내부 테스트 클래스의 예 ')}} inner.mytest ()}}

산출-

정적 중첩 클래스 : 에 외부 클래스의 정적 멤버 인 중첩 클래스입니다. 내부 클래스와 달리 정적 중첩 클래스는 외부 클래스의 인스턴스가 필요하지 않기 때문에 외부 클래스의 멤버 변수에 액세스 할 수 없습니다. 따라서 OuterClass.this가있는 외부 클래스에 대한 참조가 없습니다. 정적 중첩 클래스의 구문은 다음과 같습니다.

class MyOuter {정적 클래스 Nested_Test {}}

정적 중첩 클래스의 예

public class Outer {static class Nested_Test {public void my_method () {System.out.println ( 'This is Edureka 's nested test class')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

산출

정적 및 비 정적 중첩 클래스의 차이점

정적 중첩 클래스는 바깥 쪽 클래스의 다른 멤버에 직접 액세스 할 수 없습니다. 정적이기 때문에 객체를 통해 둘러싸는 클래스의 비 정적 멤버에 액세스해야합니다. 즉, 둘러싸는 클래스의 비 정적 멤버를 직접 참조 할 수 없습니다. 그리고 이러한 제한으로 인해 정적 중첩 클래스는 거의 사용되지 않습니다.

비 정적 중첩 클래스는 외부 클래스의 모든 멤버에 액세스 할 수 있으며 외부 클래스의 다른 비 정적 멤버와 동일한 방식으로 직접 참조 할 수 있습니다.

이 기사를 마치기 전에 몇 가지 핵심 사항을 살펴 보겠습니다.

기억해야 할 요점

  • 내부 클래스는 클래스의 일반 멤버로 처리됩니다.
  • 내부 클래스는 외부 클래스의 멤버이므로 protected, private과 같은 다른 액세스 수정자를 내부 클래스에 적용 할 수 있습니다.
  • Nested 클래스는 둘러싸는 클래스의 멤버이므로. (점) 표기법을 사용하여 중첩 된 클래스와 해당 멤버에 액세스합니다.
  • 중첩 된 클래스를 사용하면 코드를 더 쉽게 읽을 수 있고 캡슐화 .
  • 내부 클래스는 private로 선언 된 경우에도 외부 클래스의 다른 멤버에 액세스 할 수 있습니다.

이것으로 Java의 Nested classes에 대한이 블로그의 끝입니다. Java에 대해 자세히 알아 보려면 다음을 확인하십시오. 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 'Java의 중첩 클래스'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.