Статичні внутрішні класи
На відміну від звичайних класів внутрішні класи можуть бути статичними. Такі класи ще називають вкладеними. Статичні внутрішні класи дозволяють приховати деяку комплексну інформацію всередині зовнішнього класу:
class Math{ public static class Factorial{ private int result; private int key;public Factorial(int number, int x){ result=number; key = x; } public int getResult(){ return result; } public int getKey(){ return key; } } public static Factorial getFactorial(int x){ int result=1; for (int i = 1; i <= x; i++){ result *= i; } return new Factorial(result, x); }}
Тут визначено вкладений клас для зберігання даних про обчислення факторіала. Основні дії виконує метод getFactorial, який повертає об'єкт вкладеного класу. І тепер використовуємо класи в методі main:
public static void main(String[] args) { Math.Factorial fact = Math.getFactorial(6); System.out.printf("Факториал числа %d равен %d \n", fact.getKey(), fact.getResult());}