Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / про использование переменных / 9 сообщений из 9, страница 1 из 1
04.02.2014, 10:22
    #38548150
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
всем привет

народ, хотелось бы прояснить для себя с вашей помощью тонкости использования переменных

почему вопрос возник: слышал, что в ООП переменные (поля) предназначены для использования внутри класса, а если надо получить в классе А значение поля из класса Б, то надо использовать геттер из класса А
в C# даже есть понятие свойства, чтобы напрямую не юзать поля

есть такое желание иметь некий библиотечный класс для работы с датой и временем, с помощью которого в других классах получать дату и время в нужном формате = получается, что получить я смогу только посредством геттеров?

p.s. сорри, если слишком ламерски и сумбурно изложил
...
Рейтинг: 0 / 0
04.02.2014, 10:35
    #38548174
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
buyboyполучается, что получить я смогу только посредством геттеров?

Да хоть через форматерры. :) Простите мне мой английский.
...
Рейтинг: 0 / 0
04.02.2014, 10:42
    #38548184
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
По сути

Да в java не стали нормально делать properties и переопределение операций и т.п.
В замен properties в офмф есть соглашение о том, как следует называть некоторые методы, совокупность которых формирует свойство объекта (и иногда ,например в языке скриптов EJB, именно так и интерпретируется).
...
Рейтинг: 0 / 0
04.02.2014, 11:11
    #38548215
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
На самом деле, как сделаете - так и будет. Такого вот строгого правила, что мол если сделаешь через переменную - к тебе постучаться - нет.

Другое дело, что пропертя - весьма удобная практика, позволяющая реализовать весьма удобные штуки. Очень жаль, что в жабе их нету.
...
Рейтинг: 0 / 0
04.02.2014, 11:25
    #38548231
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
buyboy,

Ключевая разница в том, что свойства могут быть виртуальными. А поля - нет. Поэтому используя свойства, можно пользоваться полиморфизмом в полный рост. Код, который вместо этого использует поля другого класса, уже будет не так просто переделать под виртуальный вызов.
Поэтому пока вы только учитесь, используйте везде свойства, если нужен уровень доступа public. А когда научитесь понимать разницу и где что, а так же пользоваться package private/protected доступом, тогда уже сможете использовать поля, там где, особой надобности в свойствах нет.

Есть ещё такой проект
http://projectlombok.org/
Который с помощью кодогенерации может сам добавить вам свойства. Важно только чтобы ваша IDE умела его понимать.

Есть и куча других альтернативных синтаксисов для свойств
Xtend, Kotlin, Ceylon
...
Рейтинг: 0 / 0
04.02.2014, 11:29
    #38548235
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
chabapokОчень жаль, что в жабе их нету
+1
...
Рейтинг: 0 / 0
04.02.2014, 11:32
    #38548239
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
Blazkowiczbuyboy,

Ключевая разница в том, что свойства могут быть виртуальными. А поля - нет. Поэтому используя свойства, можно пользоваться полиморфизмом в полный рост. Код, который вместо этого использует поля другого класса, уже будет не так просто переделать под виртуальный вызов.
Поэтому пока вы только учитесь, используйте везде свойства, если нужен уровень доступа public. А когда научитесь понимать разницу и где что, а так же пользоваться package private/protected доступом, тогда уже сможете использовать поля, там где, особой надобности в свойствах нет.

Есть ещё такой проект
http://projectlombok.org/
Который с помощью кодогенерации может сам добавить вам свойства. Важно только чтобы ваша IDE умела его понимать.

Есть и куча других альтернативных синтаксисов для свойств
Xtend, Kotlin, Ceylon

ооо! спасибище!
вот только недопонял вас про свойства — свойств же нету в джаве
или вы имели ввиду геттеры, под свойствами?

p.s. проблем с использованием модификаторов доступа у меня нет
...
Рейтинг: 0 / 0
04.02.2014, 11:57
    #38548281
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
buyboyвот только недопонял вас про свойства — свойств же нету в джаве
или вы имели ввиду геттеры, под свойствами?
Свойства в Java реализуются через методы акцесоры (геттеры и сеттеры). Это публичные виртуальные методы, соответственно и свойства тоже публичные и виртуальные.

buyboyp.s. проблем с использованием модификаторов доступа у меня нет
Мне кажется вы заблуждаетесь. Знать какой из этих модификаторов доступа что обозначает, это ещё не значит использовать их в полный рост при проектировании классов. У меня например такая проблема есть. Я считаю что не доконца ещё пользуюсь всеми возможностями package private при дизайне. Если для вас это не проблема, то остаётся только порадоваться за вас.
...
Рейтинг: 0 / 0
04.02.2014, 12:05
    #38548297
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про использование переменных
BlazkowiczМне кажется вы заблуждаетесь. Знать какой из этих модификаторов доступа что обозначает, это ещё не значит использовать их в полный рост при проектировании классов. У меня например такая проблема есть. Я считаю что не доконца ещё пользуюсь всеми возможностями package private при дизайне. Если для вас это не проблема, то остаётся только порадоваться за вас.
ну уж если у вас такая проблема
то у меня значит - просто катастрофа
:)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / про использование переменных / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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