내부 클래스(Inner class)
- 웹개발에서는 잘 안쓰이고, 안드로이드 개발에서 주로 개발함.
- 하나의 클래스에서 a작업과 b작업이 있을 때에는 따로 분리하여 클래스로 만들지 않고, 클래스 안에 클래스를 선언하여 설계한다. 이 때 밖에 있는 클래스를 외부 클래스라고 하며, 안에 선언된 클래스를 내부 클래스라고 한다. 외부 클래스가 메모리에 할당되어야 내부 클래스를 객체화할 수 있기 때문에 클래스를 숨기기위해서는 내부 클래스를 사용하기도한다.이를 캡슐화 또는 은닉화라고 부른다.
내부클래스는 외부 클래스의 필드이기때문에 외부 클래스의 필드를 자신의 필드처럼 가져다 사용할 수 있게 된다.
익명 클래스(Anonymous inner class)
- 이름이 없는 클래스이며,구현되지 않은 필드를 구현하기 위해서 일회성으로 생성되는 클래스이다.