Java 프로그램의 내부 클래스는 모든 함수와 외부 클래스에 대한 멤버의 액세스를 사용하기 위해 이미 작동하는 클래스에서 선언되고 사용되는 클래스일 뿐입니다. 이는 일반적으로 코드 길이를 줄이면서 프로그램의 코딩 패턴을 보다 체계적으로 구성해야 할 때 사용됩니다. 내부 클래스에는 멤버 내부 클래스, 익명 내부 클래스, 로컬 내부 클래스의 세 가지 유형이 있습니다. Java 프로그램 스니펫에서 내부 클래스를 사용할 때의 장점으로 볼 수 있는 주요 요인은 내부 클래스를 사용하면 코드를 더욱 최적화하고 구성할 수 있으며 가독성이 높아지고 이러한 종류의 클래스에 대한 유지 관리 비용이 상당히 낮다는 것입니다.
Java의 내부 클래스는 기본적으로 정적이지 않고 다른 클래스 내부에 선언된 클래스입니다. 따라서 내부 클래스는 외부 클래스의 멤버입니다. Java에는 3가지 유형의 내부 클래스가 있습니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
Inner Class는 정적이 아닌 중첩 클래스 유형이라는 점에 유의하세요. Java의 다양한 Inner 클래스 유형을 하나씩 살펴보겠습니다.
이 경우 외부 클래스 내부에 클래스를 선언하면 됩니다. 그러나 클래스는 외부 클래스의 메서드 내부에 있어서는 안 됩니다. 외부 클래스의 메서드 외부에서 정의해야 합니다. 내부 클래스는 비정적 유형이어야 합니다. 내부 클래스 유형의 객체는 외부 클래스의 변수에 액세스할 수 있습니다.
이 경우에도 외부 클래스 내부에 클래스를 선언하면 됩니다. 그러나 클래스는 외부 클래스의 메서드 내부에 있어야 합니다. 외부 클래스의 메서드 내부에서 정의해야 합니다. 내부 클래스는 비정적 유형이어야 합니다. 내부 클래스 유형의 객체는 외부 클래스의 변수에 액세스할 수 있습니다. 이 클래스는 외부 클래스의 메서드 내에서 선언되므로 지역 변수와 마찬가지로 액세스도 제한됩니다. Inner 클래스의 함수를 호출해야 하는 경우 함수 내부에서 인스턴스화해야 합니다.
로컬 내부 클래스 주의사항:
익명은 이름 그대로 이름 없는 통화입니다. 그러나 그것이 어떻게 가능합니까? 실제로 선언과 인스턴스화(객체 생성을 의미)를 동시에 수행하는 일종의 내부 클래스입니다. 클래스의 메서드를 재정의하려는 경우 항상 익명 내부 클래스를 사용해야 할 수 있습니다. 익명 내부 클래스에는 이름이 없으므로 익명 내부 클래스 생성자를 만들 수 없습니다. 또한 익명 내부 클래스는 정의된 시점에만 액세스할 수 있습니다.
익명 내부 클래스는 두 가지 방법으로 생성할 수 있습니다.
아래에서는 Java 내부 클래스의 몇 가지 코드 예를 설명합니다.
이 예에서는 Member의 내부 클래스 예를 보여줍니다. 이 간단한 예에서는 외부 클래스 내부에 클래스를 선언합니다. "OuterClass" 내부에는 "num1"이라는 개인 데이터 멤버와 내부 클래스 "InnerClass"가 있습니다. "InnerClass" 유형의 객체를 통해 내부 클래스 내부의 외부 호출의 전용 변수 "num1"에 액세스할 수 있습니다. 이런 식으로 우리는 Inner 클래스의 메서드를 통해 외부 호출의 전용 멤버에 액세스할 수 있는 내부 클래스를 활용하고 있습니다.
코드:
class OuterClass{ private int num1=36; class InnerClass{ void shw(){ System.out.println("Member Inner Class"); } } } public class DemoOfMemberInnerClass{ public static void main(String args[]){ OuterClass oc=new OuterClass(); OuterClass.InnerClass ic=oc.new InnerClass(); ic.shw(); } }
출력:
이번 예에서는 Local 내부 클래스의 예를 보여드리겠습니다. 여기서 우리의 주요 목표는 외부 클래스의 메서드 기능을 재정의하는 것입니다. 이름에서 알 수 있듯이 클래스 이름은 명시적으로 알려져 있지 않으므로 익명 내부 클래스라고 합니다. 여기서 내부 클래스의 선언과 인스턴스화는 어느 시점에서 모두 이루어지므로 이를 익명 내부 클래스라고 합니다.
코드:
abstract class Cat{ abstract void drink(); } public class AnonymousInnerClassDemo{ public static void main(String args[]){ Cat ct=new Cat(){ //anonymous inner class void drink(){ System.out.println("kitty loves milk"); } }; ct.drink(); } }
출력:
In this example, we will demonstrate an example of a method local inner class. In this simple example where we declare a class inside the method “display()” of the outer class “OuterClassDemo”. After that, we can access the method by an object of the outer class.
Code:
public class OuterClassDemo{ private int num1=36;//instance variable void display(){ class LocalInnerClass{ // local inner class inside the method of outer class void shw(){ System.out.println(num1); } } LocalInnerClass li=new LocalInnerClass(); li.shw(); } public static void main(String args[]){ OuterClassDemo obj=new OuterClassDemo(); obj.display(); } }
Output:
Here are some of the advantages of the java inner class, which are explained below:
This concludes our learning of the topic “Inner Class in Java”. An inner class is a very interesting feature in java where you can use a member of the outer class by the object of its inner class. Write yourself the codes mentioned in the above examples in the java compiler and verify the output. Learning of codes will be incomplete if you will not write code by yourself.
위 내용은 Java의 내부 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!