Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП 
:(
    Опции темы
koder
Дата 27.12.2005, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



свойства класса.
открытые переменные - публичные поля.
Правила применения свойств и открытых переменных?
--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
Snowy
Дата 27.12.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



А в чем вопрос?
PM MAIL   Вверх
koder
Дата 27.12.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



Когда применяются открытые поля, а когда закрытые?
Когда не требуется проверка открытых переменных?
В книжке этого не написано! Хочу узнать от вас? smile

Это сообщение отредактировал(а) koder - 27.12.2005, 21:46
--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
Snowy
Дата 27.12.2005, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Что подразумевается под открытыми и закрытими?
Применение private, protected, public и published?
В общем случае:
Закрытые поля применяются для внутренней реализации внутри класса.
Открытые поля применяются для работы с объектом из вне.
Т.е. то, что доступно всем. А приватные поля - для внутренней реализации и хранения данных.
PM MAIL   Вверх
DeadSoul
Дата 27.12.2005, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 1
Всего: 11



Цитата(koder @ 27.12.2005, 21:35)
Когда применяются открытые поля,

поле is_equal член класса, т.е переменная, а не функция?
Если ДА, то такое делать не рекомендуют.

Причины: допустим у тебя есть класс с членом mass(целое число). Если данные член public, то очень непросто найти все места где изменяется данная переменная. А это может понадобится: например, после полугодовой работы программы выяснилось, что масса не может быть более 1000. Искать все места где встречается обращения к массе? А если в дальнейшем неаккуратный программист не проверит новую массу перед присваиванием?

P.S. Надеюсь понятно сформулировал?


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
koder
Дата 27.12.2005, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



Цитата(Snowy @ 27.12.2005, 21:49)
Что подразумевается под открытыми и закрытими?
Применение private, protected, public и published?
В общем случае:
Закрытые поля применяются для внутренней реализации внутри класса.
Открытые поля применяются для работы с объектом из вне.
Т.е. то, что доступно всем. А приватные поля - для внутренней реализации и хранения данных.

Зачем они применяются, мне понятно, а в каких случаях не требуется делать проверку на применение открытых переменных..?
Открытые переменные, это переменные, в public описанные...
--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
Snowy
Дата 28.12.2005, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



В любых. Работа ведется только с public и published свойствами.
И проверять ничего не нужно.
Работа с приватными полями ведется толькопри реализации класса.
Для работы с классом используются только открытые свойства.
Приватные просто не видны, и соответственно компилятор просто не даст с ними работать.
PM MAIL   Вверх
Zero
Дата 28.12.2005, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(koder @ 27.12.2005, 22:35)
Когда применяются открытые поля, а когда закрытые?

В основном, с точки зрения хорошего стиля программирования, закрытыми переменными делают именно переменные (то что после Var), а открытыми компоненты функции и процедуры, и они далее называются методами.
Но это всё не строго...
PM MAIL ICQ   Вверх
koder
Дата 28.12.2005, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



Когда не следует делать проверку в открытых переменных?
1) Когда тип открытых переменных - Variant
2) Когда передаваемое знаение того же типа, и компилятор проверяет входит ли значение в тип открытых переменных.
3)?
4)?
5)?
--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
Zero
Дата 28.12.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(koder @ 28.12.2005, 08:47)
Когда не следует делать проверку в открытых переменных?

Проверку чего делать то???
PM MAIL ICQ   Вверх
koder
Дата 28.12.2005, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



На правильность данных.
--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
Демо
Дата 28.12.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(koder @ 28.12.2005, 11:44)
На правильность данных.


Что означает "правильность данных".

Если целое поле объекта содержит число 10, это правиьное число?


--------------------
    
PM MAIL ICQ Skype   Вверх
Zero
Дата 28.12.2005, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(koder @ 28.12.2005, 11:44)
На правильность данных.

Она не как не связана, с открытыми и закрытыми переменными.
Там где считаешь, что пользователь может ввести неправильные данные, там и ставь проверки. Но при этом имей ввиду, что если ты обращаешся к переменным не из компонент-функции, то переменные должны входить в паблик (хотя это плохой стиль программирования)...
Лучше всего, сделать копонент-функцию, в паблике (открытой), а переменные в привате (закрытыми) и внутри этой КП делать проверки, а потом только использовать имя переменной которая типа "твой класс" и как метод вызвать эту комп.функцию...
PM MAIL ICQ   Вверх
Демо
Дата 28.12.2005, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(koder @ 28.12.2005, 08:47)
2) Когда передаваемое знаение того же типа, и компилятор проверяет входит ли значение в тип открытых переменных.


Не существует понятия "открытые переменные".
Добавлено @ 11:23
Цитата(Zero @ 28.12.2005, 12:20)
(хотя это плохой стиль программирования)...


Не надо про стиль.
Использовать поля в классе нужно именно там, где это необходимо, руководствуясь целесообразностью и мозгом, а не исповедуя религий в виде слова "стиль".

Это сообщение отредактировал(а) Демо - 28.12.2005, 11:24


--------------------
    
PM MAIL ICQ Skype   Вверх
Zero
Дата 28.12.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата
Не существует понятия "открытые переменные".

Открытые переменные ─ это переменные которые доступны, не только в нутри описания компонент-функции, но а также и других местах. Пишутся после ключевого слова public:
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.