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