Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

static nested class? [дубликат]

#java #классы #static #inner


        
             
                
                    
                        
                            На этот вопрос уже даны ответы здесь:
                            
                        
                    
                
                        
                            Зачем нужен static class?
                                
                                    (3 ответа)
                                
                        
                                Закрыт 2 года назад.
            
                    
для чего нужен static nested class? и как его использовать?
    


Ответы

Ответ 1



Вложенные классы — элементы содержащего их класса. Статические — не имеют доступ к членам внешнего класса. Как и другие поля класса, вложенные классы могут быть объявлены как private, public, protected, или package private. Для чего использовать вложенные классы Вот некоторые причины использования вложенных классов: Это хороший способ группировки классов, которые используются только в одном месте: если класс полезен только для одного другого класса, то логично будет держать их вместе. Вложение таких вспомогательных классов делает код более удобным. Инкапсуляция: допустим, есть два класса A и B, классу B требуется доступ к свойству класса A, которое может быть приватным. Вложение класса B в класс A решит эту проблему, более того сам класс B можно скрыть от внешнего использования. Улучшение читаемости и обслуживаемости кода: вложение малых классов в более высокоуровневые классы позволяет хранить код там, где он используется. Вложенные классы Как статические переменные и методы, вложенный (статический) класс связан с внешнимклассом. И так же как и статические методы не может напрямую обращаться к полям объекта внешнего класса. Доступ к вложенному классу осуществляется с помощью следующей конструкции: OuterClass.StaticNestedClass Синтаксис создания объекта вложенного класса: OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); Подробнее можно почитать в этом уроке Вложенные и внутренние классы в Java. Часть 1

Ответ 2



Для логической группировки взаимозависимых классов и улучшения инкапсуляции. Например, класс из стандартной библиотеки HashMap содержит в себе объявление статического класса Node, объекты которого используются для хранения пар ключ-значение.

Комментариев нет:

Отправить комментарий