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

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

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

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

футов общей площади, из них1п агеаРР + " приходится на одного человека"); Ниже приведен результат выполнения этой программы. дом имеет: 2 этажа 4 жильца 2500 кв. футов общей плошади, иэ них 625 приходится на одного человека Учреждение имеет: 3 этажа 25 работников 4200 кв.

футов общей площади, из них 188 приходится на одного человека Как видите, данные из объекта )тоцзе полностью отделены от данных, содержап(ихся в объекте от к1се. Эта ситуация наглядно показана на рис. 6.1. Глава 6. Введение в классы, объекты и методы 149 Рис. 6.1. Переменные экземпляра одного объекта полностью отделены от переменных экземпляра другого объекта Создание обьектов В предыдущих примерах программ для объявления объекта типа В011б1пд использовалась следующая строка кода: Вл11бьпд Ьооае пеи Ви1101пч()) Эта строка объявления выполняет три функции.

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

во время выполнения) распределяет память для объекта и возврашает ссылку на него, которая затем сохраняется в переменной. Следовательно, в С№ для всех объектов классов должна быть динамически распределена память. Как и следовало ожидать, объявление переменной полее можно отделить от создания объекта, на который'она ссылается, следующим образом: Ви1101пч Ьооае; // объявить ссылку иа объект Паоле = пеи В011бьпд()) // распределить объект типа Вл1101пч В первой строке объявляется переменная полее в виде ссылки на объект типа В011б1пп. Следовательно, после — это переменная, которая может ссылаться на объект, хотя сама она не является объектом.

А во второй строке создается новый объект типа В011бдпгп и ссылка на него присваивается переменной пепле. В итоге переменная попав оказывается связанной с данным объектом. То обстоятельство, что объекты классов доступны по ссылке, объясняет, почему классы называются ссылочными типами Главное отличие типов значений от ссылочных типов заключается в том, что именно содержит переменная каждого из этих типов. Так, переменная типа значения содержит конкретное значение. Например, во фрагменте кода 1пс х; х = 10) переменная х содержит значение 10, поскольку она относится к типу 1пк, который является типом значения. Но в строке Ви1101по Полее = пеи В01101пд()' переменная полее содержит не сам объект, а лишь ссылку на него. 150 Часть ), язык Сз Переменные ссылочного типа и присваивание В операции присваивания переменные ссылочного типа действуют иначе, чем переменные типа значения, например типа 1пс.

Когда одна переменная типа значения присваивается другой, ситуация оказывается довольно простой. Переменная, находящаяся в левой части оператора присваивания, получает копию значения переменной, находящейся в правой части этого оператора. Когда же одна переменная ссылки на объект присваивается другой, то ситуация несколько усложняется, поскольку такое присваивание приводит к тому, что переменная, находящаяся в левой части оператора присваивания, ссылается на тот же самый объект, на который ссылается переменная, находящаяся в правой части этого оператора.

Сам же объект не копируется. В силу этого отличия присваивание переменных ссылочного типа может привести к несколько неожиданным результатам. В качестве примера рассмотрим следующий фрагмент кода: Ви11бьпд Лоиве1 = пен Ви11бьпЧ() Ви11и1пд Поиве2 = Поиве1) На первый взгляд, переменные )коияе1 и )зоиве2 ссылаются на совершенно отдельные объекты, но на самом деле это не так. Переменные )коиве1 и )ксив е2, напротив, ссылаются на один и тот же объект.

Когда переменная Ьоиве1 присваивается переменой )коиве2, то в конечном итоге переменная )коиве2 просто ссылается на тот же самый объект, что и переменная )зоияЕ1. Следовательно, этим объектом можно оперировать с помощью переменной )коиве1 или )коияе2. Например, после очередного присваивания Поиве1.Агеа = 2бОО) оба метода Иг1сеь1пе () Сопво1е.нк1пеЬ1пе(ьоиве1.Агеа) сопяо1е.икьсеьапе Фоиве2.Агеа) выводят одно и то же значение: 2600.

Несмотря на то что обе переменные, )коиве1 и )коиве2, ссылаются на один и тот же объект, они никак иначе не связаны друг с другом. Например, в результате следующей последовательности операций присваивания просто изменяется объект, на который ссылается переменная )коиве2: Ви11к)1пч Поиве1 = пен Вищбьпд(); Ви11б1пи Поиве2 Поияе11 Ви11к)1пд Лоивез = пен Ви11бьпч(); Поиве2 Поивезк // теперь обе переменные, Ьоиве2 н // Поивез, ссыпаются на один н тот же объект. После выполнения этой последовательности операций присваивания переменная ' )коияе2 ссылается на тот же самый объект, что и переменная ПоивеЗ.

А ссылка на объект в переменной )зоиве1 не меняется. Методы Как пояснялось выше, переменные экземпляра и методы являются двумя основными составляющими классов. До сих пор класс Ви11г)1пя, рассматриваемый здесь в качестве примера, содержал только данные, но не методы. Хотя данные, содержащие только дан- Глава 6.

Введение в классы, объекты и методы 151 иые, вполне допустимы, у большинства классов должны быть также методы. Методы представляют собой подпрограммы, которые манипулируют данными, определенными в классе, а во многих случаях оии предоставляют доступ к этим данным. Как правило, другие части программы взаимодействуют с классом посредством его методов. Метод состоит из одиого или нескольких операторов. В грамотно написанном коде С№ каждый метод выполняет только одну функцию.

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

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

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

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

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