ключевое слово static
используется в variables
или methods
(даже classes)
, чтобы указать, что они связаны с определением class
, а не с экземпляром (класса).
Это означает, что каждый объект класса будет иметь одни и те же static
поля / методы, потому что они связаны с самим определением. Более того, вам не понадобится экземпляр для ссылки на это поле / методы, потому что вы можете легко получить их, используя сам class
.
Понятие static class
используется с вложенным классом. Поскольку вложенный класс может не быть статическим, если вам нужно ссылаться на него из статического контекста, вы должны явно объявить его как статический, иначе объявление будет связано с экземпляром, не позволяя использовать его из статического контекста.
IOException
- это просто подтип Exception
, используемый JDK для создания исключений, связанных с проблемами ввода / вывода. Это не RuntimeException
, так что это проверенный, который должен быть перехвачен всякий раз, когда метод может его выбросить. Это означает, что исключение фактически используется для информирования вызывающих абонентов о том, что что-то пошло не так при работе с вводом-выводом