Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 31

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 31 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 312019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

Для того чтобы добавить метод в класс Ви11П1пгь достаточно указать его в области объявлений в данном классе. В качестве примера ниже приведен переработанный вариант класса Ви11бапьв СОДЕРжащий метод Атеарегрегзоп (), который выводит площадь, рассчитанную на одного человека в конкретном здании. // добавить метод в класс Виг1бапч. из1пд зузтеки с1азз Ви11бьпч ( ривьгс 1пт Г1оогз( // количество этажей рип11с Епт Агеа; // общая плошадь здания риЬ11с Епт Оссираптзт // количество жильцов // Вывести площадь на одного человека. риЬ11с чо16 Атеарегрегзоп() ( Сопво1е.нг1теЬЕпе(" " т Агеа / Оссираптв + " приходится на одного человека") // Использовать метод АгеаРегРегзоп() с1авв Ви11б1пдпешо ( втат1с чо1б Иа1п() ( Ви11б1пч Ьоиве = пек Ви11бьпд(); Ви11б1пп оЕЕ1се = пен Виг1бгпд()т // Присвоить значения полям в объекте почве.

Ьоиве.оссираптв = 4( Ьоиве.дтеа = 2500( почве.Г1оогз = 2; // Присвоить значения полям в объекте оЕЕгсе. оЕЕ1се.оссираптв 25( оЕЕ1се.лтеа = 4200( оЕЕЕсе.Г1оогз = 3( Сопво1е.нтьтеъьпе("дом имеет:1п почве.Г1оогз + " этажаМ Ьоиве.оссираптз + " жильцаМ " + Ьоизе.Атеа + " кв. футов общей площади, иэ них")) Ьоиве.агеаРегРетвоп()т Сопзо1е.итгтедвпе(]т Сопво1е.Иг1теььпе("Учреждение имеет:1п оЕЕЕсе.Г1оога + " этажа1п оЕЕгсе.оссираптз + " работников1п " + оЕЕгсе.Агеа + Глава 6.

Введение е классы, объекты и методы 153 " кв. футов обшей плошади, иэ них")т оШсе.йгеарегрегвоп()т ) Эта программа дает такой же результат, как и прежде: дом имеет: 2 этажа 4 жильца 2500 кв. футов общей площади, иэ них 625 приходится на одного человека Учреждение имеет: 3 этажа 25 работников 4200 кв. футов общей площади, иэ них 168 приходится на одного человека Рассмотрим основные элементы этой программы, начиная с метода Агеаре грега оп () . Первая его строка выглядит следующим образом: рцъттс чоьб агеарегрегаоп() ( В этой строке объявляется метод, именуемый Агеарегрегзоп и не имеющий параметров. Для него указывается тип рц)э11с, а это означает, что его можно вызывать из любой другой части программы. Метод Агеарегрегэоп () возвращает пустое значение типа чохб, т.е.

он практически ничего не возвращает вызывающей части программы. Анализируемая строка завершается фигурной скобкой, открывающей тело данного метода. Тело метода Агеарегрегэоп () состоит всего лишь из одного оператора. Сопэо1е.иг1геь1пе(" " + Агеа / Оссцрапгэ + " приходится на одного человека") Этот оператор осуществляет вывод величины площади на одного человека, которая получается путем деления общей плошади здания (переменной Агеа) на количество жильцов (переменную ()ссцрапгэ). А поскольку у каждого объекта типа Вц114(1пс имеется своя копия переменных Агеа и Оссцрапгэ, то при вызове метода Агеарегрегзоп () в вычислении используются копии этих переменных, принадлежащие вызывающему объекту. Метод йгеарегрегзоп () завершается закрывающейся фигурной скобкой.

Когда встречается эта скобка, управление программой передастся обратно вызывающему объекту. Далее проанализируем внимательно следующую строку кода из метода мати (): Ьоцэе .АгеаРегРегвоп () т В этой строке вызывается метод йгеарегрегэоп () для объекта )конзе. Это означает, что метод Агеарегрегэоп () вызывается относительно объекта, на который ссылается переменная )топ ее, и для этой цели служит оператор-точка. Когда метод Агеарегре ге оп ( ) вызывается, ему передается управление программой. А по его завершении управление передается обратно вызывающей части программы, выполнение которой возобновляется со строки кода, следующей после вызова данного метода.

В данном случае в результате вызова )зоцэе. Агеарегрегзоп () выводится площадь на одного человека в здании, определенном в объекте йоп ее. Аналогично, в результате вызова отт1се. йгеарегрегзоп () выводится площадь на одного человека в здании, определенном в объекте от г1се. Таким образом, при кюкдом вызове метода Агеарегреге оп () выводится площадь на одного человека для указанного объекта. 154 Часть ). язык Сз В методе Агеарегрегзоп () особое внимание обращает иа себя следующее: обращение к переменным экземпляра Агеа и Оссирапгз осуществляется непосредственно, т.е. без помощи оператора-точки.

Если в методе используется переменная экземпляра, определенная в его классе, то делается это непосредственно, без указания явной ссылки на объект и без помощи оператора-точки. Понять это нетрудно, если хорошенько подумать. Ведь метод всегда вызывается относительно некоторого объекта его класса. Как только вызов произойдет, объект становится известным. Поэтому объект ие нужно указывать в методе еще раз. В данном случае это означает, что переменные экземпляра Агеа и Оссирапгз в методе Агеарегрегзоп () неявно ссылаются иа копии этих же перемениых в том объекте, который вызывает метод Агеарегрегэоп () . Не заметку! Лопутно следует заметить, что значение переменной Оссирапгз в методе Агеарегрегзоп () не должно быть равно нулю бэта касается всех примеров, приведенных в данной главе).

Если бы значение переменной О с с иран се оказалось равным нулю, то произошла бы ошибка из-за деления на нуль. В главе 13, где рассл|атриваются исключительные ситуации, будет показано, каким образом в Св отслеживаются и обрабатьшаются ошибки, которые могут возникнуть во время выполнения программы. Возврат из метода В целом возврат из метода может произойти при двух условиях. Во-первых, когда встречается фигурная скобка, закрывающая тело метода, как показывает пример метода Агеарегрегвоп () из приведенной выше программы. И во-вторых, когда выполняется оператор ге гиги.

Имеются две формы оператора ге сиги: одна — для методов типа той|1, т.е. тсх методов, которые ие возвращают значения, а другая — для методов, возвращающих конкретные значения. Первая форма рассматривается в этом разделе, а в следующем разделе будет поясиено, каким образом значения возвращаются из методов. Немедленное завершение метода типа чо1с( можно вызвать, используя следующую форму оператора гегигп: гвсигп| Когда выполняется этот оператор, управление возвращается вызывающей части программы, а оставшийся в методе код пропускается.

В качестве примера рассмотрим следующий метод: рис)1с но1С Муиесь Н ( ьпг 1| Гог(1=0; 1<10| 1++) ( |Г(1 == 5) гесигп; гУ прервать на шаге 5 Спп*о1е.пг1сеъъпе()| ) ) В, шипом примере выполняется лишь 5 полноценных шагов цикла г ог, поскольку при значении 5 переменной 1 происходит возврат из метода. В погоде допускается наличие нескольких операторов гегигп, особенно если имеются два или более вариантов выхода из него. Например; риЫ1с чо1С МуМеги() ( 11(иопе) гегигп| Глава 6.

Введение в классы, объекты и методы 155 О ... РГ(еггог) гесцгпт ) В данном примере возврат из метода происходит в двух случаях: если метод завершает свою работу или происходит ошибка. Но пользоваться таким приемом программирования следует очень аккуратно.

Ведь из-за слишком большого числа точек выхода из метода может нарушиться структура кода. Итак, напомним еше раз: возврат из метода типа чо1т) может произойти при двух условиях: по достижении закрывакпцей фигурной скобки или при выполнении оператора гесцгп. Возврат значения Методы с возвратом типа чо1г) нередко применяются в программировании, тем не менее, большинство методов возвращают конкретное значение. В действительности способность возвращать значение является одним из самых полезных свойств метода.

Возврат значения уже демонстрировался в главе 3 на примере метода ма си. Вк) гс (), использовавшегося для получения квадратного корня. Возвращаемые значения используются в программировании с самыми разными целями. В одних случаях, как в примере метода Магп.

Вг(гг (), возвращаемое значение содержит результат некоторого вычисления, в других — оно может просто указывать на успешное или неудачное завершение метода, а в третьих — содержать код состояния. Но независимо от преследуемой цели использование возвращаемых значений является неотьемлемой частью программирования на С№. Для возврата значения из метода в вызываюшую часть программы служит следующая форма оператора гег цгш геспгп значение; где значение — это конкретное возвращаемое значение. Используя возвращаемое значение, можно усовершенствовать рассматривавшийся ранее метод Агеарегрегяоп () . Вместо того чтобы выводить величину площади на одного человека, лучше возвратить ее из этого метода.

Среди прочих преимушеств такого подхода следует особо отметить возможность использовать возвращаемое значение для выполнения других вычислений. Приведенный ниже пример представляет собой улучшенный вариант рассматривавшейся ранее программы с усовершенствованным методом АгеаРегрегяоп (), возвращающим величину площади на одного человека вместо того, чтобы выводить ее. // Возвратить значение из метода Агеарегрегяоп() цяьпо Яуясещт с1аяя Вц11пьпо ( рцЬ11с Рпс Р1оогят // количество этажей рцьььс 1пс Асеан // общая площадь здания рцЬ11с гпс Оссцрапсят // количество жильцов // Возвратить величину площади на одного человека.

рцЬ11с гпг Агеарегрегяоп() гесцгп Агеа / Оссцрапсяп ) 166 Часть ). Язык С№ // Испольэовать значение, возвращаемое // методом АгеаРегРегяоп(). с1аяя Ви1161пдоещо ( згаг1с уогб Иатп() ( Ви11бапд Поияе = пеи Ви11сапд () т Ви11бзпд оттьсе = пеи Ви1161пд()т зпг агеаРР( // площадь на одного человека // Присвоить значения полям в объекте Поизе. Пензе.оссирапся = 44 Ьоияе.агеа = 25004 Ьоияе.Р1оогя 24 // Присвоить значения полям в объекте оШсе. отгзсе.оссирапгз = 254 отт№се.Агеа = 4200( оттасе.г1оогя Зт // Получить площадь на одного человека в жилом доме. агеаРР = Ьоияе.агеарегрегяоп()т Сопяо1е.игасег зле("дом имеет: 1п Ьоияе.Р1оогя ь " этажа1п Почве.оссирапгз + " жильца1п поияе.Агеа ь " кв. футов общей плошади, иэ них1п агеаРР + " приходится на одного человека"); Сопзо1е.Игасеьапе() т // Получить площадь на одного человека в учреждении.

агеаРР = оШсе.АгеаРегРегзоп()т Сопяо1е.игтгеьапе("Учреждение имеетктп отт1се.Р1оогз + " этажа1п " + оттзсе.оссирапгя + " работникоя1п оттзсе.Агеа ь " кв. футов общей плошади, из нихМ агеаРР + " приходится на одного человека"); Эта программа даст такой же результат, как и прежде.

В данной программе обратите внимание на следутощее: когда метод Агеарегрегзоп () вызывается, он указывается в правой части оператора присваивания. А в левой части этого оператора указывается переменная, которой передается значение, возвращаемое методом Агеарегрегзоп (). Следовательно, после выполнения оператора агеаРР Ьоияе.агеаРегРегзоп()т в переменной агеаРР сохраняется величина площади на одного челОвЕка в жилОм ДОМЕ 1объект )тоизе). Глава б.

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее