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

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

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

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

Тем не менее оператор ггосо должен выполняться в пределах оператора змтссь. Это означает, что его нельзя использовать как внешнее средство для безусловного перехода в оператор зм1Сс)ь В приведенном ниже примере программы демонстрируется применение оператора ггосо в операторе вм1сс)). // Применить оператор чово в операторе вньтсп. нвьнэ Яувхет( с1авв Бнгвсвоото ( згатьс того Маьп() сот(гнс 1=11 1 < 51 1+т) ( знгтсп(1) ( сазе 1: 144 Часть Ь Язык Сй Сопяо1е.нхьсегйпе ("В ветви саве 1") ) дсго саяе 3) саяе 2: Сопяо1е.их1се11пе("В ветви саяе 2")) Чово саяе 1) саяе 3: Сопяо1е.Игггеглпе ("В ветви саве 3") ) сосо бегао1с) я)етао1С: Сопяо1е.нг1гесьпе("В ветви детао1С"); Ь ге аки ) Сопво1е.иг1яесьпе() // Чапо саяе 1; // Ошибка! Безусловный переход к оператору яньпсл недопустим. ) Вот к какому результату приводит выполнение этой программы.

В ветви саяе 1 В ветви саве 3 В ветви бесап1С В ветви саяе 2 В ветви саве 1 В ветви саяе 3 В ветви бетап1С В ветви саяе 3 В ветви г)етао1С В ветви бегао1С Обратите внимание на то, как оператор Бого используется в операторе яиагсп для перехода к другим его ветвям саяе или к ветви с)е сап 1С. Обратите также внимание на то, что ветви саяе не оканчиваются оператором Ьгеах. Благодаря тому что оператор доге препятствует последовательному переходу от одной ветви саяе к другой, упоминавшееся ранее правило недопущения "провалов" не нарушается, а следовательно, необходимость в применении оператора Ьгеа)с в данном случае отпадает. Но как пояснялось выше, оператор досо нельзя использовать как внешнее средство для безусловного перехода к оператору яхзгсп. Так, если удалить символы комментария в начале следующей строки: // досо саве 1) // Ошибка! Безусловный перехол к оператору яньссь недопустим.

приведенная выше программа не будет скомпилирована. Откровенно говоря, применение оператора алого в ог)ераторе ях1ссь, в общем, не рекомендуется как стиль программирования, хотя в ряде особых случаев это может принести определенную пользу. Ниже приведен один из полезных примеров применения оператора посо для выхода из глубоко вложенной части программы. (вава 5. Управвпюп(пе операторы 145 О Продемонстрировать практическое применение оператора досо.

пасла Яуввеи; с1авв аве чово ( втаСЬс чово Маьп() ( ЬвС 1=0, 1=0, К=О; Гос(в=01 т < 10; 1+т) ( Гог(3=01 3 < 107 3++ Гос(К=О; К < 10; Кт+) ( Сопво1е.нсЬСеЬ1пе(")., 3, )с: " е )с); ЬГ(К == 3) ЧоСо яСор; ) ) ) асор: Сопво1е.игЬСеьспе("Остановлено! 1, 3, К: ° 1 ° - . ' К) 1 ) Выполнение этой программы дает следующий результат.

, 3, к: а а а 3, К: О О 1 1, 3, К: 0 0 2 1, К: О О 3 Остановлено! 1, 3, К: О, 0 3 Если бы не оператор сосо, то в приведенной выше программе пришлось бы прибегнуть к трем операторам 1Г и )згеаК, чтобы выйти из глубоко вложенной части этой программы. В данном случае оператор сосо действительно упрощает код. И хотя приведенный выше пример служит лишь для демонстрации применения оператора посо, вполне возможны ситуации, в которых этот оператор может на самом деле оказаться полезным.

И последнее замечание: как следует из приведенного выше примера, из кодового блока можно выйти непосредственно, но войти в него так же непосредственно нельзя. 148 Часть!. язык С() Общая форма определения класса При определении класса объявляются данные, которые он содержит, а также код, оперирующий этими данными. Если самые простые классы могут содержать только код или только данные, то большинство настоящих классов содержит и то и другое.

Вообще говоря, данные содержатся в членах банных, определяемых классом, а код— в функциях-членах. Следует сразу же подчеркнуть, что в СФ предусмотрено несколько разновидностей членов данных и функций-членов. Например, к членам данных, называемым также полями, относятся переменные экземпляра и статические переменные, а к функциям-членам — методы, конструкторы, деструкторы, индексаторы, события, операторы и свойства. Ограничимся пока что рассмотрением самых основных компонентов класса: переменных экземпляра и методов. А далее в этой главе будут представлены конструкторы и деструкторы.

Об остальных разновидностях членов класса речь пойдет в последующих главах. Класс создается с помощью ключевого слова с1а аз. Ниже приведена общая форма определения простого класса, содержащая только переменные экземпляра и методы. с1авв имя класса ( /! Объявление переменных экземпляра. доступ тип переменная1; доступ тип переменная2; поступ тип переменнаям; Объявление методов. доступ возращаеьгый тип метод1(параметры) ( тело метода доступ возращаемый тип метод2(параметры) ( тело метода доступ воэращаемыГ1 тнп метода(параметры) ( тело метода ) ) Обратите внимание на то, что перед каждым объявлением переменной и метода указывается доступ. Это спецификатор доступа, например рпЬ11с, определяющий порядок доступа к данному члену класса.

Как упоминалось в главе 2, члены класса могут быть как закрытыми (ргзуасе) в пределах класса, так открытыми (риЬ11с),.т.е. более доступными. Спецификатор доступа определяет тил разрешенного доступа. Указывать спецификатор доступа не обязательно, но если он отсутствует, то объявляемый член считается закрытым в пределах класса. Члены с закрытым досгупом могут использоваться только другими членами их класса. В примерах программ, приведенных в этой главе, все члены, за исключением метода Иазп ( ), обозначаются как открытые (рпЬ11с). Это означает, что их можно использовать во всех остальных фрагментах кода — даже в тех, что определены за пределами класса. Мы еще вернемся к обсуждению спецификаторов доступа в главе 8.

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

Таким образом, в правильно сконструированном классе должна быть сгруппирована логически связанная информация. Если же в один и тот же класс помещается логически несвязанная информация, то структурированность кода быстро нарушается. Классы, использовавшиеся в приведенных ранее примерах программ, содержали только один метод; Маъп () . Но в представленной выше общей форме определения класса метод маъп () не указывается. Этот метод требуется указывать в классе лишь в том случае, если программа начинается с данного класса. Определение класса Для того чтобы продемонстрировать классы на конкретных примерах, разработаем постепенно класс, инкапсулирующий информацию о зданиях, в том числе о домах, складских помещениях, учреждениях и т д.

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

(Впоследствии в него будут также введены методы.) о1аяя Вц11бьпп ) рцЬ11о ъпо Г1оогяг // количество зтажей рцЬ11о 1пс Лтеа; общая площадь здания рцЬ11о 1пс оооцрапбяг // количество жильцов ) Переменные экземпляра, определенные в классе Вц11с)1по, демонстрирую~ общий порядок объявления переменных экземпляра. Ниже приведена общая форма для объявления переменных экземпляра; доступ тип имя переменной; где доступ обозначает вид доступа; тип — конкретный тип переменной, а имя переменной — имя, присваиваемое переменной. Следовательно, за исключением спецификатора доступа, переменная экземпляра объявляется таким же образом, как и локальная переменная. Все переменные объявлены в классе Вц11с)1пд с предваряющим их модификатором доступа рцЬ11с. Как пояснялось выше, благодаря этому они становятся доступными за пределами класса Вц 11с)1 од.

Определение с1аяя обозначает создание нового типа данных. В данном случае новый тип данных называется Вц11г)1по. С помощью этого имени могут быть объявлены 150 Часть ). Язык СФ объекты типа ВО11г(1по. Не следует, однако, забывать, что объявление с1азз лишь описывает тип, но не создает конкретный объект. Следовательно, в приведенном выше фрагменте кода объекты типа ВО11г(1по не создаются. Для того чтобы создать конкретный объект типа ВО11с(1по, придется воспользоваться следующим оператором. Вп1101пд Ьопве = пен Вв11бтпо()) // создать объект типа Ви11бтпэ После выполнения этого оператора объект Ьопзе станет экземпляром класса Вп11с(1пп, т.е. обретет "физическую" реальность. Не обращайте пока что внимание на отдельные составляющие данного оператора.

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

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

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

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

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