Inner (iç) ve nested (iç içe) class kavramları, Java'da benzer ancak farklı anlamlar taşır:
- Inner class, bir sınıfın içinde tanımlanan ve o sınıfın bir üyesi olan non-static (statik olmayan) bir class türüdür 12. Bu tür bir class, dıştaki sınıfın instance değişkenlerine erişebilir ve dıştaki sınıfın bir nesnesi oluşturulduğunda otomatik olarak oluşturulur 4.
- Nested class ise, tamamen bağımsız olan ve dıştaki class'tan farklı bir class türüdür 1. Dıştaki class'ın içinde tanımlansa da, kendi başına var olabilir ve dıştaki class'ın üyelerine (fields ve methods) doğrudan erişebilir, hatta bunlar private olsa bile 14.
5 kaynaktan alınan bilgiyle göre: