본문 바로가기
Java

JAVA Inner class

by titlejjk 2023. 5. 3.

Java에서 Inner class란 내부 클래스라고 하는데 즉 클래스 안의 클래스이다.

class A { //외부 클래스
...
	class B{ //내부 클래스
    ...
    }
    ...
}

내부 클래스의 장점은 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 가능하며, 코드의 복잡성을 줄일 수 있다.(캡슐화)

예를 들어 A class에서만 쓰이는 것을 굳이 밖에다 만들어서 쓰지 않고 내부에 만들어 써서 사용하기 위한 편함이 있다.

내부 클래스는 외부 클래스가 생성된 이후에 사용이 가능하다.

그러므로 내부 클래스는 클래스가 사용될 때만 사용이 되며, 다른 클래스에서는 사용되지 않는다.

내부 클래스는 주로 이벤트 핸들러를 처리할 때나 안드로이드 앱을 만들 때 많이 사용된다.

Inner 클래스는 Outer 클래스의 멤버에 접근할 수 있지만, Outer 클래스는 Inner 클래스의 멤버에 접근할 수 없다. Inner 클래스의 멤버는 Outer 클래스의 객체가 생성되어 있다는 가정하에 사용하므로 접근이 가능하지만, Outer 클래스는 Inner 클래스의 객체의 생성과 관계가 없으므로 Inner 클래스에 대한 접근이 자유롭지 못하다. Inner클래스가 static으로 정의되어 있으면 Outer 클래스의 객체 생성 없이 바로 객체 생성이 가능하다.

내부 클래스의 종류👉

  • 멤버 내부 클래스(Member Inner Class) : 다른 클래스의 멤버 변수로 선언된 내부 클래스
  • 정적 내부 클래스(Static Inner Class) : static 예약어로 선언된 내부 클래스
  • 지역 내부 클래스 (Local Inner Class) : 메소드 내부에 선언된 내부 클래스
  • 익명 내부 클래스 (Anonymous Inner Class) : 선언과 동시에 인스턴스가 생성되는 내부 클래스

내부 클래스의 주요 용도👉

  • 코드의 가독성 향상 : 내부 클래스를 사용하면 관련된 클래스들을 그룹화하여 코드의 가독성 향상
  • 캡슐화 : 내부 클래스를 사용하면 클래스 간의 관계를 더욱 강력하게 만들 수 있다. 내부 클래스를 사용하면 외부 클래스의 메소드와 변수를 쉽게 접근 가능하며, 이를 통해 더욱 강력한 캡슐화를 구현할 수 있다.
  • 콜백(Callback) : 내부 클래스를 사용하면 콜백 기법을 더욱 쉽게 구현할 수 있다. 콜백 기법은 어떤 이벤트가 발생했을 때, 이를 처리하는 메소드를 미리 만들어 놓고., 이 메소드를 인자로 넘겨주는 방식으로 이벤트를 처리하는 방법이다. 이를 내부 클래스를 사용하여 구현하면, 간편하게 구현할 수 있다.

내부 클래스는 다른 클래스와 마찬가지로 클래스의 구성 요소인 필드, 메소드, 생성자 등을 가질 수 있으며, 내부 클래스의 멤버 변수와 메소드는 외부 클래스의 멤버 변수와 메소드와 마찬가지로 접근 제어자를 사용하여 public, private, protected 등으로 제한할 수 있다.

내부 클래스를 사용하기 위해서는, 외부 클래스의 인스턴스를 먼저 생성해야 한다. 이후에는 외부 클래스의 인스턴스를 사용하여 내부 클래스의 인스턴스를 생성할 수 있다.

'Java' 카테고리의 다른 글

JAVA Interface(작성중)  (0) 2023.05.03
JAVA 추상클래스와 인터페이스의 차이  (0) 2023.05.03
JAVA Extends  (0) 2023.05.02
JAVA Abstract  (0) 2023.05.02
JAVA 다형성  (0) 2023.05.02

댓글