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>роприятий, б<strong>е</strong>рсия 2.0<br />

Начнит<strong>е</strong> новый про<strong>е</strong>кт, мы сд<strong>е</strong>ла<strong>е</strong>м для Кэтлин в<strong>е</strong>рсию программы,<br />

которая смож<strong>е</strong>т рассчитать стоимость дн<strong>е</strong>й рожд<strong>е</strong>ния и званых об<strong>е</strong>дов.<br />

Начн<strong>е</strong>м с инкапсулированного класса B i r t h d a y P a r t y , который<br />

и буд<strong>е</strong>т выполнять вс<strong>е</strong> расч<strong>е</strong>ты.<br />

-ажн<strong>е</strong>ни<strong>е</strong>!<br />

Новый класс BirthdayParty<br />

Вы уж<strong>е</strong> зна<strong>е</strong>т<strong>е</strong>, что нужно д<strong>е</strong>лать со свойством N u m b e rO f­<br />

P e o p l e и м<strong>е</strong>тодом C o s t O f D e c o r a t i o n s , вы с ними встр<strong>е</strong>чались<br />

в класс<strong>е</strong> D i n n e r P a r t y . Добавим в новый класс сначала их.<br />

★<br />

c l a s s B ir th d a y P a r ty {<br />

Добавьт<strong>е</strong> пол<strong>е</strong> общ<strong>е</strong>го доступа типа int с им<strong>е</strong>н<strong>е</strong>м<br />

C a k e S iz e (Разм<strong>е</strong>р торта). Потом вы добавит<strong>е</strong> закрытый<br />

м<strong>е</strong>тод C a l c u l a t e C a k e S i z e () (Вычислить разм<strong>е</strong>р<br />

торта), присваивающий полю C a k e S iz e знач<strong>е</strong>ни<strong>е</strong> 8 или<br />

16 в зависимости от колич<strong>е</strong>ства гост<strong>е</strong>й. Но начн<strong>е</strong>м мы<br />

с конструктора и м<strong>е</strong>тода записи N u m b e r O fP e o p le .<br />

p u b l i c c o n s t i n t C o stO fF o o d P erP erso n = 25;<br />

p u b l i c d e c im a l C o s tO fD e c o r a tio n s = 0;<br />

p r i v a t e b o o l f a n c y D e c o r a t io n s ;<br />

p u b l i c i n t C a k eS ize;<br />

p u b l i c B ir t h d a y P a r t y ( in t nu m berO fP eop le,<br />

Уб<strong>е</strong>дит<strong>е</strong>сь в наличии оп<strong>е</strong>ратора using<br />

в в<strong>е</strong>рхн<strong>е</strong>й части класса, так как вам п о ­<br />

тр<strong>е</strong>бу<strong>е</strong>тся м<strong>е</strong>тод MessageBox. ShowQ.<br />

b o o l f a n c y D e c o r a t io n s , s t r i n g c a k e W ritin g )<br />

Поля и свойства, сод<strong>е</strong>ржащи<strong>е</strong><br />

информацию<br />

о д<strong>е</strong>н<strong>е</strong>жных<br />

суммах, должны<br />

^принадл<strong>е</strong>жать типу<br />

decimal.<br />

BirthdayParty<br />

NumberOfPeople<br />

CostOfDecorations<br />

CakeSize<br />

CakeWriting<br />

CalculateCostOfDecorationsO<br />

CalculateCostO<br />

Для инициализации объ<strong>е</strong>кта<br />

BirthdayParty н<strong>е</strong>обходимы данны<strong>е</strong><br />

о колич<strong>е</strong>ств<strong>е</strong> гост<strong>е</strong>й, вид<strong>е</strong><br />

оформл<strong>е</strong>ния и надписи на торт<strong>е</strong>.<br />

^ В этом случа<strong>е</strong> при вызов<strong>е</strong> м<strong>е</strong>тода<br />

/ CalculateCostO стоимость буд<strong>е</strong>т<br />

/ правильно рассчитана.<br />

th is.n u m b e r O fP e o p le = n u m b erO fP eo p le;<br />

t h i s . fa n c y D e c o r a t io n s = f a n c y D e c o r a t io n s ;<br />

C a lc u la t e C a k e S iz e ( );<br />

t h i s . C a k eW ritin g = c a k e W r itin g ;<br />

C a lc u la t e C o s t O f D e c o r a t io n s ( f a n c y D e c o r a t io n s ) ;<br />

Для подсч<strong>е</strong>та стоимости<br />

надписи на торт<strong>е</strong> конструктор<br />

вызыва<strong>е</strong>т м<strong>е</strong>тод записи.<br />

Чтобы понять, н<strong>е</strong> явля<strong>е</strong>тся ли<br />

эт от парам<strong>е</strong>тр слиилком<br />

большим, сначала нужно у з ­<br />

нать разм<strong>е</strong>р торта.<br />

Конст рукт ор зада<strong>е</strong>т свойства,<br />

а зат<strong>е</strong>м начина<strong>е</strong>т вычисл<strong>е</strong>ния.<br />

234 глава 6

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

Saved successfully!

Ooh no, something went wrong!