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

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

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

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

Кроме того, доступ обычно представляет собой модификатор доступа типа риЫ1с, поскольку конструкторы зачастую вызываются в классе. А список параметров может быть как пустым, так и состоящим из одного или более указываемых параметров. У всех классов имеются конструкторы, независимо от того, определите вы их или нет, поскольку в СК) автоматически предоставляется конструктор, используемый по умолчанию и инициализирующий все переменные экземпляра их значениями по умолчанию. Для большинства типов данных значением по умолчанию является нулевое, для типа Ьоо1 — значение ка1ве, а для ссылочных типов — пустое значение.

Но как только вы определите свой собственный конструктор, то конструктор по умолчанию больше не используется. Ниже приведен простой пример применения конструктора. // Простой конструктор. ивьпч Бувкепы с1авя МуС1авя ( риЫ1с 1пк хт риЫьс МуС1авв() ( х = 10т ) ) с1яяя Сопяпемо ( всяк1с совы Мя1п() ( ИуС1авя С1 = пен МУС1яяв(); иус1аяя с2 = пен муС1яяя()т Сопяо1е.ыгьке11пе(С1.х + " " + С2.х); ) В данном примере конструктор класса мус1авв имеет следующий вид: риЫкс МуС1авя () ( х = 10; Обратите внимание на то, что этот конструктор обозначается как ри)в11с.

Дело в том, что он должен вызываться из кода, определенного за пределами его класса. В этом конструкторе переменной экземпляра класса иуС1аяя присваивается значение 10. Он вызывается в операторе пен при создании объекта. Например, в следующей строке: МУС1аяя С1 пен МуС1аяя() конструктор ИуС1азз() вызывается для объекта 01, присваивая переменной его экземпляра 01. х значение 10. То же самое происходит и для объекта 02. После конструирования переменная с2.

х будет содержать то же самое значение 10. Таким образом, выполнение приведенного выше кода приведет к следующему результату: 10 10 164 Часть ). Язык Са Параметризованные конструкторы В предыдущем примере использовался конструктор без параметров. В некоторых случаях этого оказывается достаточно, но зачастую конструктор должен принимать один или более параметров., В конструктор параметры вводятся таким же образом, как и в метод.

Для этого достаточно объявить их в скобках после имени конструктора. Ниже приведен пример применения параметризированного конструктора муС1азз. // Параиетриэированный конструктор. цз1пд Бузсеап с1азз МуС1азз ( рцЫьс 1пк рцЫъс МуС1азз(ьпк 1) ( х=).т ) ) с1азз РагщСопвпещо ( зоакъс ноти Ма1п() ( МуС1азз С1 = пен МуС1азв(10) МуС1азз С2 = пен МуС1азв(88) Сопво1е.игъкеъ1пе(С1.х + " " ь С2.х) ) ) При выполнении этого кода получается следующий результат: 10 88 В данном варианте конструктора Мус1азз () определен параметр 1, с помощью которого инициализируется переменная экземпляра х.

Поэтому при выполнении следующей строки кода: МуС1азз 11 = пен Мус1азз(10)т параметру 1 передается значение, которое затем присваивается переменной х. Добавление конструктора в класс Вих1с1~пд Класс Вц11б1пд можно еще больше усовершенствовать, добавив в него конструктор, автоматически инициализирующий поля Г1оогз, йгеа и сссцрапсз при создании объекта. Обратите особое внимание на то, как создаются объекты класса Вц11с(ъпд. // Добавить конструктор в класс ВЫ161пч. цзьпд зузкетщ с1азз Вц1101пп ( рцЬ11с 1пк Р1оогз; // количество этажей рцЫъс 1пк Агеа/ // общая площадь здания рцЫ1с 1пк Оссцрапкз; // количество жильцов Глава 6.

Введение в классы, объекты н методы 165 // Параметризированный конструктор // для класса ВЫ1агпд. риЫ1с Ви1161пд(1пс Е, 1пс а, гпс о) ( Р1оогя = Е; Агеа а; Оссирапся от ) // Возвратить площадь на одного человека. риЫ1с 1пс АгеаРегРегяоп() ( гетигп Агеа / Оссирапся; О Возвратить максимальное количество человек, // занимающих здание, исходя из заданной минимальной // площади на одного человека. риЫгс гпс Махоссирапс(ъпс щгпАгеа) ( гесигп Агеа / югпАгеат ) // Использовать параметризированный конструктор О класса Ви114)1пд.

с1аяя Ви11т)1пдоещо ( всасгс чоъа маьп() ( ВЫ1агпд Почве = пен ВЫ101пд(2, 2500, 4) т Ви11сгпд оЕЕ1се = пеи Ви11агпд(3, 4200, 25)т Сопяо1е.нг1сеьъпе( "Максимальное количество человек в доме, тп" + "если на каждого должно приходиться " ь 300 + " кв. футов: лоияе .махоссирапг (300) ) т Сопяо1е.нгтсеьтпе( "Максимальное количество человек " + "в учреждении, 1п" + "если на каждого должно приходиться " + 300 + " кв.

футов: оЕЕгсе.Махоссирапс(300))т Результат выполнения этой программы оказывается таким же, как и в предыдущей ее версии. Оба объекта, )тоияе и ОЕЕгсе, были инициализированы конструктором ви11с(1пд () при их создании в соответствии с параметрами, указанными в этом конструкторе. Например, в строке ВЫ161пд Почве пен Ви11т)1пд(2, 2500, 4)т конструктору Виг101пд() передаются значения 2, 2500 и 4 при создании нового объекта. Следовательно, в копиях переменных экземпляра Р1оогя, Агеа и Оссирапгя объекта )тоияе сохранятся значения 2, 2500 и 4 соответственно. 166 Часть (, Язык С№ Еще раз об операторе петт Теперь, когда вы ближе ознакомились с классами и их конструкторами, вернемся к оператору лен, чтобы рассмотреть его более подробно.

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

В этом случае возникает исключительная ситуация во время выполнения (подробнее об обработке исключительных ситуаций речь пойдет в главе 13). В примерах программ, приведенных в этой книге, ситуация, связанная с исчерпанием оперативной памяти, не учитывается, но при написании реальных программ такую возможность, вероятно, придется принимать во внимание. Применение оператора пет№ вместе с типами значений В связи с изложенным выше возникает резонный вопрос: почему оператор пеы нецелесообразно применять к переменным таких типов значений, как 1пс или 11оас? В С№ переменная типа значения содержит свое собственное значение. Память для хранения этого значения выделяется автоматически во время прогона программы.

Следовательно, распределять память явным образом с помощью оператора пеы нет никакой необходимости. С другой стороны, в переменной ссылочного типа хранится ссылка на объект, и поэтому память для хранения этого объекта должна распределяться динамически во время выполнения программы. Благодаря тому что основные типы данных, например 1лг или сваг, не преобразуются в ссылочные типы, существенно повышается производительность программы. Ведь при использовании ссылочного типа существует уровень косвенности, повышающий издержки на доступ к каждому объекту.

Такой уровень косвенности исключается при использовании типа значения. Но ради интереса следует все же отметить, что оператор пен разрешается использовать вместе с типами значений, как показывает следующий пример: 1пс 1 = пен 1пс()т При этом для типа 1пС вызывается конструктор по умолчанию, инициализирующий переменную 1 нулевым значением. В качестве примера рассмотрим такую программу: // Использовать оператор лен вместе с типом значения. цв1пд Зузсегм с1азз пенча1це ( зтаоьс чо1с( Ма1п() ( ьпС 1 = пен ьпС(); // инициализировать переменную // 1 нулевым значением Глава б.

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