При нормальных обстоятельствах нельзя использовать статические классы модификации. Если вам нужно использовать Static для изменения класса, Static обычно изменяет анонимный внутренний класс.
Создайте еще один класс в одном классе, называемый членом внутреннего класса. Этот внутренний класс участника может быть статичным (используя статическую модификацию ключевых слов) или нестатический. Потому что статические внутренние классы имеют различные ограничения при их определении и использовании. Так что в реальной работе мало используется.
В процессе разработки наиболее распространенные внутренние классы используются во внутренних классах, которые являются немстатически участниками. Однако в конкретных случаях статические внутренние классы также могут играть их уникальную роль.
1. Цель использования статических внутренних классов.
При определении внутреннего класса вы можете префикс его со статичным модификатором разрешения. В настоящее время этот внутренний класс становится статическим внутренним классом. Однако по различным причинам, таким как ограничения использования и другие факторы (конкретные ограничения на использование подробно объясняются в следующем содержании), в реальной работе не так много. Но это не значит, что это не имеет значения. В некоторых особых случаях невозможно не хватать этого статического внутреннего класса. Например, при проведении тестирования программы кода, если основной метод устанавливается в каждом исходном файле Java (основным методом является вход в определенное приложение и должен иметь его), появится много дополнительного кода. И самое главное, что код этой основной программы является просто формой для файлов Java, и он не требует этого основного метода. Но это абсолютно невозможно сделать без этого основного метода. В этом случае основной метод может быть записан в статический внутренний класс, так что нет необходимости устанавливать аналогичный основной метод для каждого исходного файла Java. Это очень полезно для тестирования кода. В какой -либо средней и крупной разработке приложений это обычно используемые технические средства. По этой причине, хотя этот статический внутренний класс не очень часто используется, разработчики программ также должны освоить его. Возможно, в какой -то критический момент это все еще может играть огромную роль.
открытый класс maininstaticclass {static class main {static void main () {// Написать основной метод для статического внутреннего класса, поэтому нет необходимости иметь такой вид основного метода для каждого исходного файла new maninstaticclass (). print () {System.out.println ("Main in Static Inner Class");}} открытый класс Testmain {public static void main (string [] args) {// todo автоматически сгенерированный метод // new maininstaticclass ().2. Ограничения на использование статических внутренних классов.
Определение внутреннего класса как статического класса в основном то же самое, что определение других классов как статических классов, а ссылочные правила в основном одинаковы. Тем не менее, детали все еще очень разные. В частности, в основном есть следующие области, чтобы привлечь внимание всех разработчиков программ.
Одним из них является определение статических членов (включая статические переменные и статические члены). Вообще говоря, если внутренний класс не определяется как статический внутренний класс, то он не может быть определен как статическая переменная -члена и метод статического элемента при определении переменных членов или методов члена. То есть статические члены не могут быть объявлены в нестатических внутренних классах. Например, возраст внутреннего класса теперь определяется в классе ученика. Если этот класс не изменен со статическим ключевым словом, то есть он не определяется как статический класс, то в этом внутреннем классе не разрешается изменять определенную метод члена или переменную члена. Он не сможет пройти при компиляции. Таким образом, разработчики программ должны отметить, что только путем изменения внутреннего класса в качестве статического класса могут определить статические переменные члена и методы членов в этом классе. Это функция, которую есть статические внутренние классы. Именно по этой причине иногда многие задачи не могут быть выполнены без этого статического внутреннего класса. Или необходимо обойти большой круг, чтобы удовлетворить потребности определенного пользователя. Это также важная причина, по которой существуют статические внутренние внутренности.
Во -вторых, существуют относительно большие ограничения на цитаты членов. Общие нестатические внутренние классы могут получить доступ к переменным членам и методам участников во внешних классах по желанию. Даже если эти методы участников изменены как частные (переменные частных членов или методы), их нестатические внутренние классы можно получить по желанию. Это привилегия нестатических внутренних классов. Потому что в других классах переменные -члены или методы, определенные как частные, недоступны. Однако, если внутренний класс определяется как статический, будет много ограничений при использовании методов членов или переменных членов внешнего класса. Например, нестатические члены внешних классов (включая переменные членов и методы членов) не могут быть доступны из объектов статического внутреннего класса. Что это значит? Если две переменные определены во внешнем классе, одна является нестатической переменной, а другая-статическая переменная. Затем в статическом внутреннем классе, будь то внутри метода члена или в другом месте, он может ссылаться на статические переменные во внешнем классе и не может получить доступ к нестатическим переменным. В статических внутренних классах можно определить статические методы (и только статические методы могут быть определены в статических внутренних классах), а члены внешнего класса могут быть упомянуты в статических методах. Однако независимо от того, где упоминается внутренний класс, есть одна общая черта, то есть он может ссылаться на только статические методы или переменные -члена во внешнем классе. Для нестатических переменных членов и методов членов они недоступны в статических внутренних классах. Это максимальный предел использования для статических внутренних классов. В обычных нестатических внутренних классах такого ограничения нет. Именно по этой причине статические внутренние классы используются только в некоторых конкретных случаях. Его диапазон применений гораздо менее обширен, чем у нестатических внутренних классов.
В -третьих, при создании статического внутреннего класса нет необходимости связывать экземпляры статического внутреннего класса с экземплярами внешнего класса.
Вообще говоря, при создании внутреннего класса участника в классе существует обязательное положение, то есть случаи внутреннего класса должны быть связаны с экземплярами внешнего класса. То есть, прежде чем создавать внутренний класс, вы должны сначала использовать новое ключевое слово во внешнем классе, чтобы создать объект этого внутреннего класса. В этом случае, если объект внутреннего класса инициализируется из внешнего класса, объект внутреннего класса будет связан с объектом внешнего класса. Другими словами, объекты обычных нестатических внутренних классов прикрепляются к внешним объектам. Однако, если разработчики -участники создают статические внутренние классы, это еще один вопрос. Вообще говоря, когда программист определяет статический внутренний класс, ему не нужно определять экземпляры внешнего класса. То есть, чтобы определить статический внутренний класс во внешнем классе, нет необходимости использовать новое ключевое слово для создания экземпляра внутреннего класса. То есть при создании внутреннего объекта статического класса объекты его внешнего класса не нужны.
newMainInStaticClass.Main();
По конкретной причине, как правило, разработчикам программ не нужно понимать так глубоко, им просто нужно помнить, что есть это правило. При определении статических внутренних классов никогда не делайте ошибку, добавляя дополнительные деньги.
Из приведенного выше анализа мы видим, что статические внутренние классы все еще сильно отличаются от нестатических внутренних классов. Как правило, разработчики программ могут понимать, что нестатические объекты внутреннего класса косвенно сохраняют ссылку во внешнем классе, чтобы указывать на объект внешнего класса, который его создал. Независимо от этого понимания, разработчики программ должны учитывать различия между статическими внутренними классами и нестатическими внутренними классами. Например, могут ли созданы методы статического члена и переменные-члены (статические внутренние классы могут создавать статические участники вместо статических внутренних классов), ограничения на доступ к членам внешних классов (статические внутренние классы могут получить только статические переменные члена и методы-члены во внешних классах вместо статических внутренних классов, то есть они могут получить доступ к статическим или нестатическим методам внешнего класса и переменные членов). Эти два различия являются самой большой разницей между статическими внутренними классами и нестатическими внешними классами, а также являются причиной, по которой существуют статические внутренние классы. Понимая эту разницу, разработчики программ также должны знать, при каких обстоятельствах они должны использовать статические внутренние классы. Например, во время программного тестирования, чтобы избежать написания основного кода метода в каждом исходном файле Java, основной метод может быть записан в статический внутренний класс, чтобы уменьшить количество написанного кода и сделать код более кратким.
Короче говоря, статические внутренние классы-это особый класс на языке Java, который сильно отличается от обычных статических классов и нестатических внутренних классов. Как разработчик программы, необходимо знать различия между ними и принять правильные классы, где они находятся в реальной работе. Однако в целом частота статических внутренних классов не очень высока. Однако в некоторых случаях, если этот внутренний статический класс недоступен, он может иметь отрицательный эффект от половины результата вдвое больше усилий.
3. Инстанция
Прочитав приведенный выше контент, я проверил его в целом:
Прежде всего, каждый должен понимать, что статические внутренние классы просто не зависят от внешних классов, а переменные и методы внутри них не обязательно статичны. Давайте поговорим о коде ниже:
открытый тест класса {public static void main (string [] args) {myinnerStaticclass inner = new myinnerStaticclass (); inner.a = 10; inner.b = "abc"; System.out.println (inner.a+""+inner.b); открытый тест класса {public static void main (string [] args) {myinnerStaticclass inner = new myinnerStaticclass (); inner.a = 10; inner.b = "abc"; System.out.println (inner.a+""+inner.b);Приведенный выше код создает статический анонимный класс с новым, введите 10 ABC после запуска, правильно!
Суммировать
Выше приведено подробное объяснение статического класса в Java в этой статье. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!