JAVA
[JAVA] 기초문법 - 내부클래스
탱이나라
2021. 12. 1. 02:03
내부 클래스
클래스 내부에 있는 클래스

인스턴스 내부 클래스
인스턴스 내부 클래스 안에서 static 변수는 사용할 수 없다.(프로그램이 로드될떄 메모리에 올라가기 때문에 아직 생성되지 않은 클래스 안에서 생성이 불가능하기 때문에.)


이와 같이 아웃클래스를 먼저 생성하고 내부 클래스 인스턴스를 생성 가능한 문법도 존재한다.
정적 내부 클래스
-static 키워드 사용가능.
-아웃 클래스 생성과 상관 없이 사용가능하다.(static 클래스 이기 때문에 인스턴스 생성과 상관 없이 프로그램이 로드될때 메모리에 올라가기 때문이다.)
-단 아웃 클래스 멤버변수 참조가 불가능하다.


아웃클래스 생성과 상관없이 인스턴스 생성해서 사용할 수 있다.
지역 내부 클래스

클래스 안에 메서드에서 생성되는 클래스를 의미한다.
메서드 안에 지역변수를 참조할 수 없다.(메서드가 종료되면 해당변수는 사라지기 때문에)
익명 내부 클래스
지역 내부 클래스에서 메서드안에서 사용되는 클래스 이름은 의미가 없다. ㅡ> 익명 내부 클래스
변수에 대입해서 구현하는 방법.

단하나의 추상클래스나 하나의 인터페이스만 구현가능하다.
메서드안에서 구현하는 방법
