Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите понять про static inner class / 9 сообщений из 9, страница 1 из 1
07.08.2015, 15:16
    #39025125
CodError
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
public static void main(String[] args) throws Exception
{
Testes tes1 = new Testes("da");
System.out.println(tes1.name);
Testes tes2 = new Testes("db");
System.out.println(tes1.name);
System.out.println(tes2.name);

}

static class Testes
{
String name;
public Testes(String name)
{
this.name = name;
}
}

выводит
da
da
db

т.е. я спокойно могу создать два и более экземпляров СТАТИЧЕСКОГО класса? это как вообще? он же СТАТИЧЕСКИЙ
...
Рейтинг: 0 / 0
07.08.2015, 15:31
    #39025143
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
CodErrorт.е. я спокойно могу создать два и более экземпляров СТАТИЧЕСКОГО класса? это как вообще? он же СТАТИЧЕСКИЙ
Это просто нужно запомнить. Для использования внутреннего статического класса, нужна ссылка на внешний класс. Для использования внутреннего не статического класса нужна ссылка на экземпляр внешнего класса. На количество экземпляров это вообще никак не влияет.
...
Рейтинг: 0 / 0
07.08.2015, 15:38
    #39025149
morewind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
В данном случае, создается один статический класс и нестатическая переменная name
Если
Код: java
1.
String name; 


заменить на
Код: java
1.
static String name;


то результат будет ожидаемым
da
db
db
ну и к переменной можно будет обращатся вообще напрямую по имени класса
Код: java
1.
2.
Testes.name = "da";
System.out.println(Testes.name);
...
Рейтинг: 0 / 0
07.08.2015, 15:42
    #39025154
CodError
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
BlazkowiczCodErrorт.е. я спокойно могу создать два и более экземпляров СТАТИЧЕСКОГО класса? это как вообще? он же СТАТИЧЕСКИЙ
Это просто нужно запомнить. Для использования внутреннего статического класса, нужна ссылка на внешний класс. Для использования внутреннего не статического класса нужна ссылка на экземпляр внешнего класса. На количество экземпляров это вообще никак не влияет.


Т.е. поведение внутренних статических классов в этом в принципе отличается от поведения обычных статических где невозможно создание экземпляра?
...
Рейтинг: 0 / 0
07.08.2015, 15:43
    #39025156
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
CodErrorобычных статических где невозможно создание экземпляра?
Кто такие "обычные статические"?
...
Рейтинг: 0 / 0
07.08.2015, 15:44
    #39025158
CodError
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
morewindВ данном случае, создается один статический класс и нестатическая переменная name
Если
Код: java
1.
String name; 


заменить на
Код: java
1.
static String name;


то результат будет ожидаемым
da
db
db
ну и к переменной можно будет обращатся вообще напрямую по имени класса
Код: java
1.
2.
3.
4.
Testes.name = "da";
System.out.println(Testes.name);

а как я тогда укажу что взять надо name именно у test1 или test2 ?
...
Рейтинг: 0 / 0
07.08.2015, 15:45
    #39025160
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
CodError,

Давайте ещё попробую перефразировать. Любой класс с точки зрения JVM это просто класс. Статический ли он, вложенный ли, анонимный ли, или класс верхнего уровня. Все эти классы для JVM почти идентичны.
Статичность, вложенность и анонимность классов проявляются исключительно на этапе компиляции Java в байт-код.
...
Рейтинг: 0 / 0
07.08.2015, 15:46
    #39025162
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
CodErrorа как я тогда укажу что взять надо name именно у test1 или test2 ?

Вы путаете теплое с мягким. Ваши вопросы не имеют отношения к статичности и вложенности классов.
...
Рейтинг: 0 / 0
07.08.2015, 15:53
    #39025172
CodError
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять про static inner class
BlazkowiczCodErrorобычных статических где невозможно создание экземпляра?
Кто такие "обычные статические"?
Да. Это не шарп извините.

"Static
Применяется к внутренним классам, методам, переменным и логическим блокам"
http://www.quizful.net/post/features-of-the-application-of-modifiers-in-java
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите понять про static inner class / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]