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

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

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

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

бо ( пехсб101Г = пцш $10) п[пцшбгйьгз] = пехгб101гт ппшб1Я1сз+ь; пцш = пош / 10; ) мп11е(пцш > 0)т пошб1Я 1 Г з // Вывести полученные слова. Гог(; пцшбгягсз >= 0; пошбзязкз--) Сопзо1е.нгзсе(б101гз[п[пцшб101гз]) + " ")т Сопзо1е.Игзсеь1пе()) ) глава 7, массивы и строки 199 Выполнение этой программы приводит к следующему результату: число: 1808 число словами: один девять нуль восемь В данной программе использован массив строк с(фд1СЯ для хранения словесных эквивалентов цифр от 0 до 9. По ходу выполнения программы целое число преобразуется в слова. Для этого сначала получаются отдельные цифры числа, а затем они сохраняются в обратном порядке следования в массиве и типа 1пс. После этого выполняется циклический опрос массива и в обратном порядке. При этом каждое целое значение из массива и служит в качестве индекса, указывающего на слова, соответствующие полученным цифрам числа и выводимые как строки. Постоянство строк Как ни странно, содержимое объекта типа вьг1пд не подлежит изменению.

Это означает, что однажды созданную последовательность символов изменить нельзя. Но данное ограничение способствует более эффективной реализации строк. Поэтому этот, на первый взгляд, очевидный недостаток на самом деле превращается в преимущество. Так, если требуется строка в качестве разновидности уже имеющейся строки, то для этой цели следует создать новую строку, содержащую все необходимые изменения. А поскольку неиспользуемые строковые объекты автоматически собираются в "мусор", то о дальнейшей судьбе ненужных строк можно даже не беспокоиться. Следует, однако, подчеркнуть, что переменные ссылки на строки подлежат изменению, а следовательно, они могут ссылать на другой объект. Но содержимое самого строкового объекта не меняется после его создания.

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

всгкпд Яиьвсг1пд(1пс начало, апг длина) где начало обозначает начальный индекс исходной строки, а длина — длину выбираемой подстроки. Ниже приведена программы, в которой принцип постоянства строк демонстрируется на примере применения метода ЯоЬвьгфпд () . // Применить метод ЯнЬвкгапд() ив1пд Яувквщ> с1авв Яипзсг ( всак1с нскс( Ивъп() ( вкгапд сгдвкг = "В СВ упрощается обращение со стрскамн." // сформировать подстроку Вкг1Пд ВпЬвсг = Скдякг.ЯнЬвгг1Пд(5 20)т Сспвс1в.нгксеътпе("сгдвггк " + сгдвсг)т Сспво1в.игаквьапе("впЬвсгк " + впЬвгг)т ) 200 часть ).

Язык С№ Вот к какому результату приводит выполнение этой программы; огззсгс В Са упрощается обращение со строками. япЬясгс упрощается обращение Как видите, исходная строка из переменной огдягг не меняется, а выбранная из нее подстрока содержится в переменной япЬятг. И последнее замечание: несмотря на то, что постоянство строк обычно не является ни ограничением, ни помехой для программирования на С№, иногда оказывается полезно иметь возможность видоизменять строки.

Для этой цели в С№ имеется класс Ясг1пдВо11с)ег, который определен в пространстве имен яуягещ.техг. Этот класс позволяет создавать строковые объекты, которые можно изменять. Но, как правило, в программировании на С№ используется тип ягг1пс3, а не Ятг1псзпи11с[ег. Применение строк в операторах ви~йсп Объекты типа ясг1пд могут использоваться для управления оператором зн1гсЬ. Это единственный нецелочисленный тип данных, который допускается применять в операторе ян1гсЬ.

Благодаря такому применению строк в некоторых сложных ситуациях удается найти более простой выход из положения, чем может показаться на первый взгляд. Например, в приведенной ниже программе выводятся отдельные цифры, соответствующие словам "один", "два" и "три". // Продемонстрировать управление оператором змгссь О посредством строк. пвгпч Яуягесп) сгаяя Ясггпззнгссп ( згаггс тогй маги() ( ясггпд П ясгз = ( "один", "два", "три", "два", "один" )) Гогеасп(ясггпд в 1п ясгв) ( янггсь(я) ( саяе "олин": Сопяо1е.иггсе(1)) Ьгеахт саяе "два"с Сопзоге.иггсе(2)) Ьгеа)ст саяе "три"с Сопяо1е.иггсе(3)т Ьгеа)с) Сопяо1е.иггсеъгпе()т При выполнении этой программы получается следующий результат: 12321 ГЛАВА Подробнее о методах и классах в данной главе возобновляется рассмотрение классов и методов.

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

И во-вторых, класс предоставляет средства для управления доступом к его членам. Именно эта, вторая преимущественная особенность и будет рассмотрена ниже. В языке СФ, по существу, имеются два типа членов класса: открытые и закрытые, хотя в действительности дело обстоит немного сложнее. Доступ к открытому члену свободно осуществляется из кода, определенного за пределами класса.

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

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

Следовательно, правильно реализованный класс образует некий "черный ящик", которым можно пользоваться, но внутренний механизм его действия закрыт для вмешательства извне. 202 Часть!. Язык С() Модификаторы доступа Управление доступом в языке С(т организуется с помощью четырех модификаторов доьтвула: рпЫ1с, рг1чаге, ргогесСет( и гпгегпа1. В этой главе основное внимание уделяется модификаторам доступа рвы го и рггчасе. модификатор рго се с сея( применяется только в тех случаях, которые связаны с наследованием, и поэтому речь о нем пойдет в главе 11.

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

Следовательно, методы иэ других классов не имеют доступа к закрытому члену (рг1часе) данного класса. Как пояснялось в главе 6, если ни один из спецификаторов доступа не указан, член класса считается закрытым для своего класса по умолчанию. Поэтому при создании закрытых членов класса спецификатор ргг ча се указывать для них необязательно. Спецификатор доступа указывается перед остальной частью описания типа отдельного члена. Это означает, что именно с него должен начинаться оператор объявления члена класса. Ниже приведены соответствующие примеры. рпЬ1гс зггспд еггмядт рг1часе т(опЬ1е Ьа1т ргъчаге Ьоо1 гзвггог(ЬУСе яСагпя) ( // Для того чтобы стали более понятными отличия между модификаторами риЫ1с и рггчаге, рассмотрим следующий пример программы: // Отличия между андами достУпа риЫго и ргьчаге // к членам класса.

пз1пд Яузгею; с1аяя МУС1аяя ( рггчаге гпС а1рпат // доступ рггчаСе, указываемый явно гпС Ьегат // поступ рггчаге по умолчанию рпЫ1о ьпс дапкзат // доступ риЫго // Методы, которым доступны члены а1рьа и Ьега данного О класса. Член класса может иметь доступ к закрытому // члену этого же класса. риЬ1го чо1т( Яега1рпа(1пг а) ( а1рьа = ат ) рпьаьс гпг Оега1рпа() ( геспгп а1рпат риЫьс чо1т( ЯеСВееа(ьпС а) ( Ьеса = а; ) Глава 8, Подробнее о методах и классах 203 1 рпь11с ьпо Оеозеоа() ( гзопгп Ьекат ) с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 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее