Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.11.2008, 15:19
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию Использование Property при создании классов в ООП

Добрый всем день!

Народ подскажите в ООП при создании классов лучше будет пользоваться property или можно простыми перемеными. Ну типа как лучше и что будет являться "хорошим тоном"
например
Код:
Type
 TMyClass = class
  private
   Name: string;
   Age: byte;
  public
  Constructor Create;
  Procedure SetName (value: string);
  Procedure SetAge (value: byte);
  Function getName: string;
  Function GetAge: byte; 
или

Код:
Type
 TMyClass = class
 private
   FName: string;
   FAge: byte;
  public
   Constructor Create;
   Procedure SetName (value: string);
   Procedure SetAge (value: byte);
   Function getName: string;
   Function GetAge: byte; 
  published 
   property Name string read GetName write SetName;
   property Age string read GetAge write SetAge;
и еще небольшой вопросик если пользоваться вторым пунктом то где лучше объявлять процы и функции
Код:
   Procedure SetName (value: string);
   Procedure SetAge (value: byte);
   Function getName: string;
   Function GetAge: byte; 
в public или сразу после
Код:
Type
 TMyClass = class
?
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
  #2  
Старый 19.11.2008, 16:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В принципе, если у тебя нет никаких ограничений на знаения поля (и никаких доп. обработок), то можно просто выставлять поля в public.

Property нужно в 2х случаях:
1. Когда у тебя есть некоторая логика, которая должна срабатывать при чтении или записи значения (в т.ч. векторные свойства).
2. Когда ты пишешь компонент - для выставления свойст в инспектор объектов.

Хотя, я все пишу через property т.к. никогда заранее не знаешь что может потребоваться. Легче сразу их задействовать, чем потом перелопачивать половину кода.

По второму вопросу. Обычно такие функции кладуться в секцию private.
Однако, если ты планируешь их дальше переопределять, то их надо сделать виртуальными и перенести в protected.

PS. Сразу под именем класа, если не указано имя секции, то это public.
Ответить с цитированием
  #3  
Старый 19.11.2008, 16:48
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию

Спасибо за объяснение много стало более чем понятно.
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter