>Java >java지도 시간 >Java의 내부 클래스

Java의 내부 클래스

WBOY
WBOY원래의
2024-08-30 15:56:591013검색

Java 프로그램의 내부 클래스는 모든 함수와 외부 클래스에 대한 멤버의 액세스를 사용하기 위해 이미 작동하는 클래스에서 선언되고 사용되는 클래스일 뿐입니다. 이는 일반적으로 코드 길이를 줄이면서 프로그램의 코딩 패턴을 보다 체계적으로 구성해야 할 때 사용됩니다. 내부 클래스에는 멤버 내부 클래스, 익명 내부 클래스, 로컬 내부 클래스의 세 가지 유형이 있습니다. Java 프로그램 스니펫에서 내부 클래스를 사용할 때의 장점으로 볼 수 있는 주요 요인은 내부 클래스를 사용하면 코드를 더욱 최적화하고 구성할 수 있으며 가독성이 높아지고 이러한 종류의 클래스에 대한 유지 관리 비용이 상당히 낮다는 것입니다.

Java의 내부 클래스 유형

Java의 내부 클래스는 기본적으로 정적이지 않고 다른 클래스 내부에 선언된 클래스입니다. 따라서 내부 클래스는 외부 클래스의 멤버입니다. Java에는 3가지 유형의 내부 클래스가 있습니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

  • 멤버, 내부 클래스
  • 로컬 내부 클래스
  • 익명 내부 클래스

Inner Class는 정적이 아닌 중첩 클래스 유형이라는 점에 유의하세요. Java의 다양한 Inner 클래스 유형을 하나씩 살펴보겠습니다.

1. 회원내부수업

이 경우 외부 클래스 내부에 클래스를 선언하면 됩니다. 그러나 클래스는 외부 클래스의 메서드 내부에 있어서는 안 됩니다. 외부 클래스의 메서드 외부에서 정의해야 합니다. 내부 클래스는 비정적 유형이어야 합니다. 내부 클래스 유형의 객체는 외부 클래스의 변수에 액세스할 수 있습니다.

2. 지역 내부 수업

이 경우에도 외부 클래스 내부에 클래스를 선언하면 됩니다. 그러나 클래스는 외부 클래스의 메서드 내부에 있어야 합니다. 외부 클래스의 메서드 내부에서 정의해야 합니다. 내부 클래스는 비정적 유형이어야 합니다. 내부 클래스 유형의 객체는 외부 클래스의 변수에 액세스할 수 있습니다. 이 클래스는 외부 클래스의 메서드 내에서 선언되므로 지역 변수와 마찬가지로 액세스도 제한됩니다. Inner 클래스의 함수를 호출해야 하는 경우 함수 내부에서 인스턴스화해야 합니다.

로컬 내부 클래스 주의사항:

  • 로컬 변수의 지정자는 비공개, 공개 또는 보호일 수 없습니다.
  • 함수 외부에서는 Local 내부 클래스를 호출할 수 없습니다.
  • JDK 버전 1.7까지는 로컬 내부 클래스에서 최종이 아닌 지역 변수에 액세스할 수 없습니다. 하지만 JDK 버전 1.8부터 로컬 내부 클래스의 최종이 아닌 로컬 변수에 접근할 수 있습니다.

3. 익명 내부 클래스

익명은 이름 그대로 이름 없는 통화입니다. 그러나 그것이 어떻게 가능합니까? 실제로 선언과 인스턴스화(객체 생성을 의미)를 동시에 수행하는 일종의 내부 클래스입니다. 클래스의 메서드를 재정의하려는 경우 항상 익명 내부 클래스를 사용해야 할 수 있습니다. 익명 내부 클래스에는 이름이 없으므로 익명 내부 클래스 생성자를 만들 수 없습니다. 또한 익명 내부 클래스는 정의된 시점에만 액세스할 수 있습니다.

익명 내부 클래스는 두 가지 방법으로 생성할 수 있습니다.

  • 특정 유형의 하위 클래스
  • 특정 인터페이스의 구현자로서.

Java 내부 클래스의 예

아래에서는 Java 내부 클래스의 몇 가지 코드 예를 설명합니다.

예시 #1: Member, Inner Class

이 예에서는 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();
}
}

출력:

Java의 내부 클래스

예시 #2: 익명 내부 클래스

이번 예에서는 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();
}
}

출력:

Java의 내부 클래스

Example #3: Method Local Inner Class

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:

Java의 내부 클래스

Advantages

Here are some of the advantages of the java inner class, which are explained below:

  • The advantage of an inner class is that it can access all of the members that means functions and variables of the outer class.
  • This feature in Java facilitates us to logically organize our codes based on functionality, increasing code readability, and maintenance. It also facilitates the optimization of your code.
  • An inner class can access all of the private members (which means both data and methods) of its outer class.

Conclusion

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java로 이메일 수신다음 기사:Java로 이메일 수신