. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
о Б<br />
а з « .я й клосс P a rty<br />
Создайт<strong>е</strong> класс P a r ty и укажит<strong>е</strong> уров<strong>е</strong>нь доступа public. Рассмотрим диаграмму<br />
классов и р<strong>е</strong>шим, каки<strong>е</strong> свойства и м<strong>е</strong>тоды сл<strong>е</strong>ду<strong>е</strong>т п<strong>е</strong>р<strong>е</strong>н<strong>е</strong>сти из классов<br />
D in n e rP a rty и B ir th d a y P a r ty в класс P a rty .<br />
★<br />
П<strong>е</strong>р<strong>е</strong>м<strong>е</strong>стит<strong>е</strong> свойства Num berO fPeople и C o stO fD e c o ra tio n s, так как<br />
они опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>ны как для D in n e rP a rty , так и для B irth d a y P a rty .<br />
★ Прод<strong>е</strong>лайт<strong>е</strong> то ж<strong>е</strong> само<strong>е</strong> с м<strong>е</strong>тодами C a lc u la te C o stO fD e c o ra tio n sO<br />
и C a lc u la te C o st (). Н<strong>е</strong> забудьт<strong>е</strong> п<strong>е</strong>р<strong>е</strong>н<strong>е</strong>сти и закрыты<strong>е</strong> поля, н<strong>е</strong>обходи-<br />
Вскор<strong>е</strong> вы по-<br />
м<strong>е</strong>тодов. (Помнит<strong>е</strong>, что производны<strong>е</strong> классы видят только<br />
знакомит <strong>е</strong>сь------ 3 ^ „ г. ^<br />
с ключ<strong>е</strong>вым ПОЛЯ общ<strong>е</strong>го доступа. Посл<strong>е</strong> п<strong>е</strong>р<strong>е</strong>носа закрытого поля в класс P a rty , классловом<br />
protected. D in n e rP a rty и B irth d a y P a rty пот<strong>е</strong>ряют к н<strong>е</strong>му доступ.)<br />
п о л <strong>е</strong> °^я^п р о и ^ ^<br />
потр<strong>е</strong>бу<strong>е</strong>тся конструктор. Внимат<strong>е</strong>льно посмотрит<strong>е</strong> на конводного<br />
класса, структоры B ir th d a y P a r ty и D in n e rP a rty : н<strong>е</strong> им<strong>е</strong>ют ли они что-нибудь<br />
осмавляя <strong>е</strong>го общ<strong>е</strong><strong>е</strong>.<br />
закрытым для<br />
вс<strong>е</strong>го осталь- Т<strong>е</strong>п<strong>е</strong>рь добавим плат<strong>е</strong>ж $100 к м<strong>е</strong>роприятиям с колич<strong>е</strong>ством гост<strong>е</strong>й боного.<br />
л<strong>е</strong><strong>е</strong> 12. Это каса<strong>е</strong>тся как званых об<strong>е</strong>дов, так и дн<strong>е</strong>й рожд<strong>е</strong>ния, поэтому<br />
пом<strong>е</strong>стим этот плат<strong>е</strong>ж в класс Party.<br />
О П усть класс D innerP arty насл<strong>е</strong>ду<strong>е</strong>т от класса P a rty<br />
Т<strong>е</strong>п<strong>е</strong>рь, когда класс P a r ty взял на с<strong>е</strong>бя часть функций класса D in n e rP a rty , в посл<strong>е</strong>дн<strong>е</strong>м<br />
можно оставить только функции, связанны<strong>е</strong> с об<strong>е</strong>дами.<br />
★<br />
★<br />
★<br />
Уб<strong>е</strong>дит<strong>е</strong>сь, что конструктор работа<strong>е</strong>т. Он д<strong>е</strong>ла<strong>е</strong>т что-то, ч<strong>е</strong>го н<strong>е</strong> д<strong>е</strong>ла<strong>е</strong>т<br />
конструктор класса P a rty ? Оставьт<strong>е</strong> только эти функции.<br />
Вс<strong>е</strong> парам<strong>е</strong>тры и м<strong>е</strong>тоды варианта Healthy Option должны остаться в класс<strong>е</strong><br />
D in n e rP arty .<br />
Если мы хотим сохранить код формы, то н<strong>е</strong> смож<strong>е</strong>м п<strong>е</strong>р<strong>е</strong>крыть м<strong>е</strong>тод Эта проц<strong>е</strong>дура<br />
C a lc u la te C o s t (), так как форма должна п<strong>е</strong>р<strong>е</strong>дать в н<strong>е</strong>го логич<strong>е</strong>скую п<strong>е</strong>- называ<strong>е</strong>тся^^^<br />
р<strong>е</strong>м<strong>е</strong>нную h e a lth y O p tio n . Поэтому мы просто добавим в класс <strong>е</strong>щ<strong>е</strong> один<br />
м<strong>е</strong>тод C a lc u la te C o s t О , работающий с другими парам<strong>е</strong>трами. Исполь- Д^^сддотр<strong>е</strong>нй<br />
зуйт<strong>е</strong> для <strong>е</strong>го объявл<strong>е</strong>ния код из начала данной главы. Т<strong>е</strong>п<strong>е</strong>рь запись b a s e . ^ глав<strong>е</strong> 8.<br />
C a lc u la te C o s tO дастдоступ к м<strong>е</strong>тоду C a lc u la te C o s t () в класс<strong>е</strong> P a rty .<br />
О Пусть класс B irth d ayP arty такж <strong>е</strong> насл<strong>е</strong>ду<strong>е</strong>т от класса P a rty<br />
Для класса B ir th d a y P a r ty пров<strong>е</strong>дит<strong>е</strong> аналогичную проц<strong>е</strong>дуру, п<strong>е</strong>р<strong>е</strong>н<strong>е</strong>ся вс<strong>е</strong> общи<strong>е</strong><br />
признаки в базовый класс.<br />
★<br />
Каки<strong>е</strong> д<strong>е</strong>йствия конструктора B ir th d a y P a r ty н<strong>е</strong> являются частью класса<br />
P arty ?<br />
★ Вам нужно посчитать стоимость торта внутри класса B irth d a y P a rty .<br />
Это затрагива<strong>е</strong>т м<strong>е</strong>тод и свойства, поэтому их потр<strong>е</strong>бу<strong>е</strong>тся п<strong>е</strong>р<strong>е</strong>крыть.<br />
★<br />
Свойства тож<strong>е</strong> можно п<strong>е</strong>р<strong>е</strong>крывать! Присваивая знач<strong>е</strong>ни<strong>е</strong> п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной<br />
b a s e .Numberof P eople, вы обраща<strong>е</strong>т<strong>е</strong>сь к м<strong>е</strong>тоду записи в базовом класс<strong>е</strong>.<br />
Ключ<strong>е</strong>во<strong>е</strong> слово b a s e потр<strong>е</strong>бу<strong>е</strong>тся вам как для чт<strong>е</strong>ния, так и для записи.<br />
дальш<strong>е</strong> > 269