В чем ошибка? (non-static method cannot be referenced...)

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение Finch » 14 янв 2013, 09:26

djdance писал(а):стоп-стоп-стоп, товарищи, вопрос я ставлю - извините, в третий раз - именно так:

зачем нужны ПАБЛИК переменные? зачем писать publict static mVar, если мы этим пабликом никогда не пользуемся, а работаем через геттеры и сеттеры.
public static final MY_VAR, иначе дурной тон и утечки-течки =)
CEO of a company R.id.team

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение Mikhail_dev » 15 янв 2013, 15:38

Каким образом происходят утечки статического контента?

djdance
Сообщения: 48
Зарегистрирован: 04 дек 2012, 15:33

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение djdance » 15 янв 2013, 15:41

public static final MY_VAR

зачем здесь паблик?
мы же её все равно геттером достаем.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение neoksi » 15 янв 2013, 15:50

Но мы все часто пользуемся записями типа "public static final mVar".
"public" это просто свойство, а зачем и как его использовать, это уже философия и у каждого она своя ;)

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение neoksi » 15 янв 2013, 15:53

djdance писал(а):public static final MY_VAR

зачем здесь паблик?
мы же её все равно геттером достаем.
:roll: зачем константу класса гетером забирать? что-то в коде я такого не наблюдал :roll:

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение KamiSempai » 15 янв 2013, 17:49

no-- писал(а):Каким образом происходят утечки статического контента?
Вот статья с Хабра про утечки http://habrahabr.ru/post/132500/ Там про это написано.
djdance писал(а):public static final MY_VAR

зачем здесь паблик?
мы же её все равно геттером достаем.
Не путайте переменные с константами. final значит, что MY_VAR не может быть изменена.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение Finch » 15 янв 2013, 20:48

djdance писал(а):public static final MY_VAR

зачем здесь паблик?
мы же её все равно геттером достаем.
в этом случае не геттером =)

public - это модификатор доступа. Объясню почему здесь паблик. Я храню глобальные константы в Application.
Например: имеем 2 пакета в нашем приложении, пускай это будут пакеты data, ui.
В пакете ui имеем классы всякие разные, там же лежит наш Application класс. Это наша модель.
В пакете data лежат всякие классы для работы с данными. Это наша логика.
Если в классе Application мы напишем static final MY_VAR, то в пакете data мы не увидим эту переменную потому что будет применён модификатор доступа default (package-private), это видимость переменной в пакете.
Кароче если ты не напишешь public то статик не будет виден в другом пакете. Из любого класса пакета data ты не сможешь обратиться в коде так Application.MY_VAR
CEO of a company R.id.team

djdance
Сообщения: 48
Зарегистрирован: 04 дек 2012, 15:33

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение djdance » 15 янв 2013, 20:53

Finch

статик-то понятно. А нестатик и нефинал переменной зачем писать паблик?

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: В чем ошибка? (non-static method cannot be referenced...

Сообщение Finch » 15 янв 2013, 21:00

djdance писал(а):Finch

статик-то понятно. А нестатик и нефинал переменной зачем писать паблик?
не нужно писать паблик, должен быть private с геттером и сеттером
CEO of a company R.id.team

Ответить