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

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 29

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

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

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

Но если он отсутствует, то метод оказывается закрытым (ргдуасе) в пределах того класса, в котором он обьявляется. Мы будем пока что объявлять методы открытыми (рно11с), чтобы вызывать их из любой другой части кода в программе. Затем яоэрад(аемый тип обозначает тип данных, возвращаемых методом.

Этот тип должен быть действительным, в том числе и типом создаваемого класса. Если метод не возвращает значение, то в качестве возвращаемого для него следует указать тип то1с(. Далее имя обозначает конкретное имя, присваиваемое методу. В качестве имени метода может служить любой допустимый идентификатор, не приводящий к (сонфликгам в текущей области обьявлений. И наконец, список параметров — это последовательность пар, состоящих из типа и идентификатора и разделенных запятыми. Параметры представляют собой переменные, получающие значение аргуменглов, передаваемых методу при его вызове. Если у метода отсутствуют параметры, то список параметров оказывается пустым. После выполнения этой последовательности операций присваивания переменная )топяе2 ссылается на тот же самый объект, что и переменная )гопяеЗ. А ссылка на объект в переменной )зопяе1 не меняется.

156 Часть 1. язык С() Добавление метода в класс Вих1015лд Как пояснялось выше, методы класса, как правило, манипулируют данными класса и предоставляют доступ к ним. С учетом этого напомним, что в приведенных выше примерах в методе Ма1п () вычислялась площадь на одного человека путем деления общей площади здания на количество жильцов. И хотя такой способ формально считается правильным, на самом деле он оказывается далеко не самым лучшим для организации подобного вычисления. Площадь на одного человека лучше всего вычислять в самом классе Вцз1с)1по, просто потому, что так легче понять сам характер вычисления. Ведь площадь на одного человека зависит от значений в полях Агеа и Оссцрапбз, инкапсулированных в классе Вц11б1по.

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

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

Ьоцве.оссцрапгв = 4; Ьоцве.Агеа = 2500) Ьоцве.Г1оогв = 2; Присвоить значения полям в объекте оГГ1се. освьсе.оссцрапгв = 25; Глава 6. Введение в классы, объекты и методы 157 оттгсе.йгеа = 4200; оттгсе.г1оогя = 3; Сопзо1е.Хггяеъ1пе(ГДом имеет:1п Лоияе Р1оогя + " этяжя1п Лопяе.осспрапяя + " жильца1п Лоцяе.йгеа + кв.

футов общей площади, иэ них") Лоияе.АгеаРегРегяоп(); Сопяо1е.Хггяетдпе(); Сопяо1е.игггеьгпе("Учреждение имеет:1п ог"ггсе.г1аогя + " этажа1п от61се.бсспрапся + " работников1п оттзсе.дгеа э кв. футов общей площади, иэ них"); оттгсе.ягеяРегРегяоп О 4 Эта программа дает такой же результат, как и прежде. Дом имеет: 2 этажа 4 жильца 2500 кв. футов общей площади, из них 625 приходится на одного человека Учреждение имеет: 3 этажа 25 работников 4200 кв. футов общей площади, из них 160 приходится на одного человека Рассмотрим основные элементы этой программы, начиная с метода Агеарегрегяоп () .

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

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

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

В данном случае в результате вызова )тоцяе. АгеаРегРегяоп () выводится площадь на одного человека в здании, определенном в объекте )зоцяе. Аналогично, в результате вызова ос()се. АгеаРегРегяоп () выводится площадь на одного человека в здании, определенном в объекте осйсе. Таким образом, при каждом вызове метода АгеаРегРегяоп () выводится площадь на одного человека для указанного объекта.

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

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

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

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

Первая форма рассматривается в этом разделе, а в следующем разделе будет пояснено, каким образом значения возвращаются из методов. Для немедленного завершения метода типа чоус( достаточно воспользоваться следующей формой оператора тес цгп. гегигпг Глава 6. Введение в классы,объекты и методы 159 Когда выполняется этот оператор, управление возвращается вызывающей части программы, а оставшийся в методе код пропускается. В качестве примера рассмотрим следующий метод.

рпЬ11с го№0 МуМегп() гпс 1; Гаг(с=о; с<10; 1++) ( 11(1 == 5) гегпгп; №№ прервать на шаге 5 Сопво1е.иг1Сес1пе(); ) В данном примере выполняется лишь 5 полноценных шагов цикла гог, поскольку при значении 5 переменной 1 происходит возврат из метода. В методе допускается наличие нескольких операторов геспгп, особенно если имеются два или более вариантов возврата из него. Например: риЫ (и гоаб мучатся () ( /! 11(папе) геСпгп; О 11(еггог) гегпгп; В данном примере возврат из метода происходит в двух случаях: если метод завершает свою работу или происходит ошибка. Но пользоваться таким приемом программирования следует очень аккуратно. Ведь из-за слишком большого числа точек возврата из метода может нарушиться структура кода.

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

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

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

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6372
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее