14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ключ<strong>е</strong>во<strong>е</strong> слово interface<br />

инт<strong>е</strong>рф<strong>е</strong>йсы и абстрактны<strong>е</strong> классы<br />

Чтобы добавить инт<strong>е</strong>рф<strong>е</strong>йс к программ<strong>е</strong>, писать м<strong>е</strong>тоды<br />

н<strong>е</strong> нужно. Достаточно указать их парам<strong>е</strong>тры и тип возвраща<strong>е</strong>мого<br />

ими знач<strong>е</strong>ния. И поставить в конц<strong>е</strong> строки<br />

точку с запятой.<br />

Инт<strong>е</strong>рф<strong>е</strong>йсы н<strong>е</strong> хранят данны<strong>е</strong>, поэтому вы н<strong>е</strong> смож<strong>е</strong>т<strong>е</strong><br />

добавить к ним поля. Но можно добавить опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>ния<br />

свойств. Д<strong>е</strong>ло в том, что инт<strong>е</strong>рф<strong>е</strong>йс опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т список м<strong>е</strong>тодов<br />

класса с опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нными им<strong>е</strong>нами, типами и парам<strong>е</strong>трами.<br />

Если вам каж<strong>е</strong>тся, что пробл<strong>е</strong>ма мож<strong>е</strong>т быть р<strong>е</strong>ш<strong>е</strong>на<br />

добавл<strong>е</strong>ни<strong>е</strong>м поля к инт<strong>е</strong>рф<strong>е</strong>йсу, попробуйт<strong>е</strong> вм<strong>е</strong>сто этого<br />

добавить свойство, вполн<strong>е</strong> в<strong>е</strong>роятно, это им<strong>е</strong>нно то, что<br />

вам было н у ж н о ^ ^ ^ _ ^ interface iStingPatrol<br />

И нт<strong>е</strong>рф<strong>е</strong>йс {<br />

объявля<strong>е</strong>тся: Л . ^sint AlertLevel { get;}<br />

int StingerLength { get; set;}<br />

bool LookForEnemiesO;<br />

int SharpenStinger(int length)<br />

И нт <strong>е</strong>рф ш сш стоит давать<br />

им<strong>е</strong>на, начинающи<strong>е</strong>ся с п^описнои<br />

бцквы I. Н<strong>е</strong>т, правила, одязмбающ<strong>е</strong>го<br />

вас так nocmynamt^, но э т о<br />

д<strong>е</strong>ла<strong>е</strong>т код бол<strong>е</strong>в простым. Чтоды<br />

u6edumt>ca, насколько это обл<strong>е</strong>гча<strong>е</strong>т<br />

жизнь, установит<strong>е</strong> курсор на<br />

пистун> строчку внутри любого<br />

м<strong>е</strong>тода и наб<strong>е</strong>рит<strong>е</strong> I— Inte/liSense<br />

сразу ж<strong>е</strong> покаж<strong>е</strong>твам список доступных<br />

инт<strong>е</strong>рф<strong>е</strong>йсов NET<br />

Любому классу,<br />

р<strong>е</strong>ализующ<strong>е</strong>му<br />

инт<strong>е</strong>рф<strong>е</strong>йс, понадобится<br />

м<strong>е</strong>тод<br />

SharpenStingerO<br />

С парам <strong>е</strong>т ром типа<br />

int.<br />

interface INectarCollector<br />

{<br />

void FindFlowersO;<br />

void GatherNectar<br />

void ReturnToHive<br />

^<br />

;;; ' t C »<br />

Так как ж<strong>е</strong> помочь матк<strong>е</strong>? Т<strong>е</strong>п<strong>е</strong>рь она мож<strong>е</strong>т создать м<strong>е</strong>тод, б<strong>е</strong>рущий<br />

ЛЛЫНО и(^0МЯК9>^‘’<br />

Л(^0 ЭЛСМ6НТЫ ОТКОЫ“<br />

в кач<strong>е</strong>ств<strong>е</strong> парам<strong>е</strong>тра любой объ<strong>е</strong>кт, который зна<strong>е</strong>т, как защитить ул<strong>е</strong>й: *<br />

p r i v a t e v o i d D e f e n d T h e H i v e ( I S t i n g P a t r o l p a t r o l l e r )<br />

ТОГО инт<strong>е</strong>рф<strong>е</strong>йса по<br />

J<br />

Этот м<strong>е</strong>тод мож<strong>е</strong>т использовать объ<strong>е</strong>кт S t i n g P a t r o l , N e c t a r S t i n g e r<br />

или любую другую пч<strong>е</strong>лу, знающую, как защитить ул<strong>е</strong>й. При р<strong>е</strong>ализации<br />

умолчанию являются<br />

открытыми. То <strong>е</strong>сть<br />

с помопц>ю инт<strong>е</strong>р-<br />

I S t i n g P a t r o l м <strong>е</strong>тод D e f e n d T h e H iv e о гарантиру<strong>е</strong>т нал ичи<strong>е</strong> у объ<strong>е</strong>к- ( g jjJ О П О <strong>е</strong> Д <strong>е</strong> Л Я С ”<br />

та свойств и м <strong>е</strong>тодов, н <strong>е</strong>о б х о д и м ы х для защ иты улья. i г<br />

т<strong>е</strong> открыты<strong>е</strong> м<strong>е</strong>тоды<br />

^ <strong>е</strong> н т О ^<br />

Т<strong>е</strong>п<strong>е</strong>рь, когда я знаю,<br />

как защитить ул<strong>е</strong>й, мы<br />

в б<strong>е</strong>зопасности!<br />

и свойства любого<br />

р<strong>е</strong>ализующ<strong>е</strong>го <strong>е</strong>го<br />

класса.<br />

дальш<strong>е</strong> > 287

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!