РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
77 of 1163 menu

Локальный класс

Локальный класс - это класс, который объявляется внутри тела метода. Он виден только в пределах этого метода и не может быть использован за его пределами. Локальный класс имеет доступ к полям и методам внешнего класса, а также к локальным переменным метода, если они объявлены как final или являются effectively final (то есть не изменяются после инициализации).

Синтаксис

class OuterClass { void method() { class LocalClass { // body of local class } LocalClass obj = new LocalClass(); } }

Пример

Давайте создадим локальный класс внутри метода и вызовем его метод:

public class Main { public static void main(String[] args) { class Local { void print() { System.out.println("Hello from local class"); } } Local obj = new Local(); obj.print(); } }

Результат выполнения кода:

"Hello from local class"

Пример

Локальный класс может обращаться к локальным переменным метода, если они являются effectively final:

public class Main { public static void main(String[] args) { String str = "abcde"; class Local { void print() { System.out.println(str); } } Local obj = new Local(); obj.print(); } }

Результат выполнения кода:

"abcde"

Пример

Давайте создадим локальный класс, который суммирует элементы списка:

import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = List.of(1, 2, 3, 4, 5); class Summator { int sum(List<Integer> list) { int res = 0; for (int num : list) { res += num; } return res; } } Summator s = new Summator(); System.out.println(s.sum(numbers)); } }

Результат выполнения кода:

15

Смотрите также

  • класс inner-class,
    который объявляется внутри класса
  • класс anonymous,
    который не имеет имени
  • класс static-nested,
    который объявляется как статический вложенный
  • класс decl,
    который описывает объявление класса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить