Назад Зміст Вперед

11.2 Статичні внутрішні класи

Статичні внутрішні класи

На відміну від звичайних класів внутрішні класи можуть бути статичними. Такі класи ще називають вкладеними. Статичні внутрішні класи дозволяють приховати деяку комплексну інформацію всередині зовнішнього класу:
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());
}

.