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>рь глазам своим<br />

Коф<strong>е</strong>барка отн о си тся к Приборам<br />

Для задачи экономии эл<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 />

можно ограничиться классом A p p lia n c e (Прибор). Но чтобы<br />

отличить коф<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>ны в классы Cof feeM aker и Oven. Эти классы будут производными<br />

от класса A p p lia n c e , сод<strong>е</strong>ржащ<strong>е</strong>го общи<strong>е</strong> для них м<strong>е</strong>тоды<br />

и свойства.<br />

p u b l i c v o i d M o n ito rP o w e r(A p p lia n c e a p p l i a n c e ) {<br />

}<br />

/ / к о д д о б а в л <strong>е</strong> н и я данны х в домашнюю<br />

/ / б а з у п о т р <strong>е</strong> б л <strong>е</strong> н и я э н <strong>е</strong> р г и и 33 ^ ^ ^ долж<strong>е</strong>н<br />

Э т о т код отсл<strong>е</strong>жива<strong>е</strong>т,<br />

^^^^л<strong>е</strong>жиТающий<br />

сколько эл<strong>е</strong>ктроэн<strong>е</strong>ргии<br />

потр<strong>е</strong>бл<strong>е</strong>ни<strong>е</strong><br />

тр<strong>е</strong>дц<strong>е</strong>тся для работы \ эл<strong>е</strong>ктроэн<strong>е</strong>ргии<br />

коф<strong>е</strong>варки. \ g<br />

C offeeM aker<br />

CoffeeLett<br />

FlllWithWaterO<br />

MakeCoffeeO<br />

A ppliance<br />

Pluggedin<br />

Color<br />

ConsumePowerO<br />

Oven<br />

Capacity<br />

PreheatO<br />

HeatUpO<br />

ReheatO<br />

C o ffe e M a k e r m i s t e r C o f f e e = new C o f f e e M a k e r ( ) ;<br />

M o n ito r P o w e r ( m is te r C o f f <strong>е</strong> <strong>е</strong> ) ;<br />

Возьми в руку карандаш<br />

*0Ш0НИ6<br />

IW orker[] B ees = new IW o rk er[8 ];<br />

B e es [5] = n u l l ;<br />

B e e s [6] = B e e s [0] ;<br />

-RoQia.r-Tl - 1 )<br />

V<br />

М<strong>е</strong>тод MonitorPowerQ тр<strong>е</strong>би<strong>е</strong>т<br />

ссылки на обь<strong>е</strong>кт Appliance<br />

но <strong>е</strong>му можно п<strong>е</strong>р<strong>е</strong>дать ссыл- '<br />

ку misterCofFee, так как класс<br />

Согг<strong>е</strong><strong>е</strong>Мак<strong>е</strong>г явля<strong>е</strong>тся производным<br />

от класса Appliance.<br />

Тако<strong>е</strong> пов<strong>е</strong>д<strong>е</strong>ни<strong>е</strong> вы<br />

уж<strong>е</strong> наблюдали в<br />

пр<strong>е</strong>дыдуш,<strong>е</strong>й глав<strong>е</strong>,<br />

когда п<strong>е</strong>р<strong>е</strong>давали<br />

м<strong>е</strong>тоду, ожидающ<strong>е</strong>му<br />

ссылки на<br />

Sandwich, ссылки<br />

на BLT.<br />

каких знач<strong>е</strong>ниях сч<strong>е</strong>тчика пч<strong>е</strong>л i оп<strong>е</strong>раторы справа возвращ<br />

аю т знач<strong>е</strong>ни<strong>е</strong> tr u e . Сл<strong>е</strong>ва зач<strong>е</strong>ркнуты дв<strong>е</strong> строчки, пр<strong>е</strong>пятствующи<strong>е</strong><br />

компиляции.<br />

1. (Bees [i] i s IN e c ta r C o lle c to r )<br />

B e e s [0 ] = new N e c t a r S t in g e r 0 ; J<br />

B e e s [ l] = new R o b o B eeO ; М<strong>е</strong>тод<br />

о и &<br />

B e e s [2 ] = new W ork erO ; NectarStinger()<br />

р<strong>е</strong>ализу<strong>е</strong>т 2. (B e e s[i] i s i s t i n g P a t r o l )<br />

B e e s [3 ] = B e e s [0 ] a s IW orker; инт<strong>е</strong>рф<strong>е</strong>йс<br />

«iBiBoaili'iil-] — lO tei.n gP a faiwl-;'»“ istingPatrol.'^— q ^<br />

3. (B e e s[i] i s IW orker)<br />

298 глава 7

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

Saved successfully!

Ooh no, something went wrong!