|
|
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
всем привет народ, хотелось бы прояснить для себя с вашей помощью тонкости использования переменных почему вопрос возник: слышал, что в ООП переменные (поля) предназначены для использования внутри класса, а если надо получить в классе А значение поля из класса Б, то надо использовать геттер из класса А в C# даже есть понятие свойства, чтобы напрямую не юзать поля есть такое желание иметь некий библиотечный класс для работы с датой и временем, с помощью которого в других классах получать дату и время в нужном формате = получается, что получить я смогу только посредством геттеров? p.s. сорри, если слишком ламерски и сумбурно изложил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:22 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
buyboyполучается, что получить я смогу только посредством геттеров? Да хоть через форматерры. :) Простите мне мой английский. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:35 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
По сути Да в java не стали нормально делать properties и переопределение операций и т.п. В замен properties в офмф есть соглашение о том, как следует называть некоторые методы, совокупность которых формирует свойство объекта (и иногда ,например в языке скриптов EJB, именно так и интерпретируется). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:42 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
На самом деле, как сделаете - так и будет. Такого вот строгого правила, что мол если сделаешь через переменную - к тебе постучаться - нет. Другое дело, что пропертя - весьма удобная практика, позволяющая реализовать весьма удобные штуки. Очень жаль, что в жабе их нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:11 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
buyboy, Ключевая разница в том, что свойства могут быть виртуальными. А поля - нет. Поэтому используя свойства, можно пользоваться полиморфизмом в полный рост. Код, который вместо этого использует поля другого класса, уже будет не так просто переделать под виртуальный вызов. Поэтому пока вы только учитесь, используйте везде свойства, если нужен уровень доступа public. А когда научитесь понимать разницу и где что, а так же пользоваться package private/protected доступом, тогда уже сможете использовать поля, там где, особой надобности в свойствах нет. Есть ещё такой проект http://projectlombok.org/ Который с помощью кодогенерации может сам добавить вам свойства. Важно только чтобы ваша IDE умела его понимать. Есть и куча других альтернативных синтаксисов для свойств Xtend, Kotlin, Ceylon ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:25 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
chabapokОчень жаль, что в жабе их нету +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:29 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
Blazkowiczbuyboy, Ключевая разница в том, что свойства могут быть виртуальными. А поля - нет. Поэтому используя свойства, можно пользоваться полиморфизмом в полный рост. Код, который вместо этого использует поля другого класса, уже будет не так просто переделать под виртуальный вызов. Поэтому пока вы только учитесь, используйте везде свойства, если нужен уровень доступа public. А когда научитесь понимать разницу и где что, а так же пользоваться package private/protected доступом, тогда уже сможете использовать поля, там где, особой надобности в свойствах нет. Есть ещё такой проект http://projectlombok.org/ Который с помощью кодогенерации может сам добавить вам свойства. Важно только чтобы ваша IDE умела его понимать. Есть и куча других альтернативных синтаксисов для свойств Xtend, Kotlin, Ceylon ооо! спасибище! вот только недопонял вас про свойства — свойств же нету в джаве или вы имели ввиду геттеры, под свойствами? p.s. проблем с использованием модификаторов доступа у меня нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:32 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
buyboyвот только недопонял вас про свойства — свойств же нету в джаве или вы имели ввиду геттеры, под свойствами? Свойства в Java реализуются через методы акцесоры (геттеры и сеттеры). Это публичные виртуальные методы, соответственно и свойства тоже публичные и виртуальные. buyboyp.s. проблем с использованием модификаторов доступа у меня нет Мне кажется вы заблуждаетесь. Знать какой из этих модификаторов доступа что обозначает, это ещё не значит использовать их в полный рост при проектировании классов. У меня например такая проблема есть. Я считаю что не доконца ещё пользуюсь всеми возможностями package private при дизайне. Если для вас это не проблема, то остаётся только порадоваться за вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:57 |
|
||
|
про использование переменных
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМне кажется вы заблуждаетесь. Знать какой из этих модификаторов доступа что обозначает, это ещё не значит использовать их в полный рост при проектировании классов. У меня например такая проблема есть. Я считаю что не доконца ещё пользуюсь всеми возможностями package private при дизайне. Если для вас это не проблема, то остаётся только порадоваться за вас. ну уж если у вас такая проблема то у меня значит - просто катастрофа :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38548174&tid=2127709]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
213ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 577ms |

| 0 / 0 |
