Когда я хочу сделать свой частный класс статическим?

В общем, есть ли какие-либо преимущества в объявлении частного класса статическим?

В каких случаях я бы хотел использовать один из следующих вариантов вместо другого?

private static class Foo
{
    ...
}

vs

private class Foo
{
    ...
}
57
задан Michael Petrotta 3 June 2011 в 04:57
поделиться

1 ответ

Если я понимаю правильно, вопрос для частный класс по сравнению с частный статический класс . Все ответы обычно - приблизительно внутренние классы , которые не составляют 100%, относился к тому вопросу. Таким образом, первые вещи сначала:

От geeksforgeeks:

  • Вложенный класс -> класс в другом классе
  • статический вложенный класс -> Вложенные классы, которые объявляются статичные, называют статическими вложенными классами
  • внутренний класс ->, внутренний класс является нестатическим вложенным классом.

, Поскольку принятый ответ говорит, статичный по сравнению с нестатическим , вложенные классы расходятся в пути и возможности получить доступ к методам/полям вне внешнего класса. Но в случае частных классов B в классе A, у Вас нет этой проблемы, B причины не доступен вне так или иначе.

Теперь, из класса A, для нестатических полей/методов можно всегда обращаться к классу B, или путем высказывания new A.B() или всего new B(), и он не имеет значения (никакая компиляция/ошибки периода выполнения), если B частный класс или частный статический класс . В случае статических полей/методов необходимо использовать частный статический класс .

, Кроме того, если Вы хотите получить доступ из B к нестатическому полю A, затем у Вас не может быть B как частный статический класс .

, который я обычно предпочитаю частный статический класс , кроме тех случаев, когда я не могу использовать его как в предыдущем случае, вызвать intellij, даст предупреждения иначе.

0
ответ дан 24 November 2019 в 19:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: