Освоюємо Java/Вкладені, внутрішні класи

Вкладеним класом (англ. nested) в Java називається клас, визначений в середині іншого класу. Вкладені класи діляться на дві категорії: нестатичні і статичні. Нестатичні вкладені класи називаються внутрішніми (англ. inner). Вкладені класи, що оголошені статичними називаються статичними вкладеними класами.[1]

Внутрішні класи ред.

Використання внутрішніх класів дає наступне:

1. Внутрішній клас можна заховати від інших класів цього ж пакету

2. Об’єкт внутрішнього класу має доступ до даних об’єкта, в якому він визначений, включно із закритими даними.

Допустимо маємо OuterClass, який в середині має InnerClass. InnerClass має доступ до полів зовнішнього класу:

public class OuterClass {
	int x=10;
	OuterClass(){
		InnerClass inner=new InnerClass();
		inner.print();
	}
	
	public class InnerClass{
		int y =7;
		void print() {
			System.out.println("sum="+(x+y)); //x оголошено у зовнішньому класі
		}
	}
}

Тестовий клас:

public class TestOuterClass {
	public static void main(String[] args) {
	    OuterClass outer = new OuterClass();   
	}
}

Результат:

sum=17

(необхідно розширити)

Примітки ред.

  1. https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html Nested Classes // Офіційна Java документація Oracle

Абстрактні класи · Інтерфейси