Пищов за делфи - Конструктори, свойства, масиви от свойства, прикриване на свойства
| Информационни технологии | 2009-12-04 | 63 сваляния |
КонструкториНа външен вид приличат на процедури но вместо procedure се пише constructor. Той трябва да има подразбираща регистрова конвенция за заместване на параметрите. Въпреки че не се указва тип на връщаната ст-т конструкторите връщат адреса на обект който се създава в свободната памет. След изпълнението на констр може да се смята че обекта е създаден и реф данна да се използва в качеството на име на обект. Констр се изпълняват с контекста на класа в който се създава обект. <име на клас>.<ко-ор> класа може да има много констр но обикновено той е един и се препоръчва да се нарича Create. Обичайните действия за един констр са: -разпределя памет за вс полета на обекта. Обикновените полета се изчистват с 0-ли; указателите и реф данни се изчистват с nill. Низовите данни се зареждат с празни низове. -другите действия зависят от кода на тялото на костр но най често се свеждат до инициализация на полето на обекта с помощта на параметите на самия констр. Препоръчва се тялото на констр да започва с inherited. | СвойстваЧрез тях се дефинират определени качества на обектите на класа. За разлика от полетата които са обвързани с памет която може да се манипулира св-вата не са свързани еднозначно с някаква памет а по скоро дефинират алгоритъм за четене и промяна на свързана с тях памет. {1} Вс св-во трябва да има специфика за достъп read или write ако е само read e readonly. Ако е само write e writeonly. Спецификите за достъп изглеждат така: Име може да е име на поле или метод. Това име трябва да е деклар в текущият клас преди деклар на property или в родителски клас и тогава трябва да е видимо в текущият клас (не може да е private) ако е име на поле указва какво поле се асоциира. Ако е име на метод : -при четене това трябва да е ф-ция без параметри която връща ст-т съвпадаща с типа на св-вото. -при запис това трябва да е име на процедура с един параметър (ст-т или конст) който има тип съвпадащ с типа на св-вото. Вс обръщение към св-вото намиращо се вдясно от операция за присвояване се замества автоматично | Масиви от св-ваПри тях индексите се задават по аналогичен начин както се задават параметрите на процед СЗД може да съдържат само методи. Методът на read трябва да е ф-ция която връща ст-т съвпадаща с типа на property и трябва да има толкова на брой параметри колкото е броя на индексите и да има типово съответствие м-у типове и индекси. Методът на write трябва да е процедура чиито начални параметри напълно съвпадат по тип и ред с индексите на масива и има един последен параметър койтое ст-т или конст с тип съвпадащ с типа на св-вото (той задава новата ст-т на съотв св-во). При масив от св-ва описанието може да се следва от default и в такъв случай масива определя подразбрани св-ва на класа. Класа може да има наи много 1 подеазбрано св-во. Към такива св-ва може да се прави обръщение в контекста на обекта. <обект>[<<SPAN LANG="bg-BG">индекс>] вместо <обект>.<св-во>[<<SPAN LANG="bg-BG">индекс>] default константата е от типа на св-вото. Спецификацията определя подразбр ст-т на св-вото. По поразбир е nodefault. С него може да се отхвърли в клас насл. подразбирането записано за род клас. | Прикриване и скриване на св-ва. В клас наследни може да се извърши нова деклар на св-вото по 2 начина. Без да се укаже тип на св-вото тогава св-вото се прикрива. Новата деклар може да съдържа различни спецификации или да има повишена видимост. Чрез допълнителните записани спецификации се отхвърлят едноименните наследени от род клас. Могат да се добавят и нови но не може да се отхвърли специф на род клас. Може да се повиши видимостта по следния начин: Private->protected->public->published може и от protected w published. Като се запише и тип на св-вото в този случай се счита че се декларира съвсем ново св-во което крие наследеното от родителя. Тази деклар задължително има СЗД : read, write или и 2-те. Независимо от това дали в класа наследни е извършено прикр и скриване на св-во св-вата са със статичен хар-р както полетата. Т.е адресирането им се определя на етап компилация от типа на реф данна в чиито контекст се прави достъп до св-вото без оглед на това къде е насочена данната. |
Тагове от реферата: пищов, вмест, Прикриване, конструктори, constructor, procedure, конструктор, Външен, ПРОЦЕДУРИ











