Главная » Просмотр файлов » 1629295407-c61bfe4caba98380ea3e7cdae6295416

1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 6

Файл №846200 1629295407-c61bfe4caba98380ea3e7cdae6295416 (Шилдт Герберт - Полный справочник по C#) 6 страница1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200) страница 62021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

Обзор элементов языка C#31Объектно-ориентированные программы работают совсем по-другому. Ониорганизованы вокруг данных, а ключевой принцип такой организации гласит: именноданные должны управлять доступом к коду. В объектно-ориентированном языкепрограммист определяет данные и код, который разрешен для выполнения действий надэтими данными. Таким образом, тип данных точно определяет операции, которые могутбыть к ним применены.Для поддержки принципов объектно-ориентированного программирования все ООПязыки, включая C#, имеют три характерных черты: инкапсуляцию, полиморфизм инаследование.ИнкапсуляцияИнкапсуляция — это механизм программирования, который связывает код (действия)и данные, которыми он манипулирует, и при этом предохраняет их от вмешательства извнеи неправильного использования.

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

Он задает как данные, так и код, который будет оперировать этими данными. В C#класс используется для создания объектов. Объекты — это экземпляры класса. Такимобразом, класс — это по сути набор шаблонных элементов, которые показывают, какпостроить объект.Код и данные, которые составляют класс, называются членами класса. Данные,определенные в классе, называются переменными экземпляра (instance variable), а код,который оперирует этими данными, — методами-членами (member method), или простометодами. “Метод” — это термин, применяемый в C# для обозначения подпрограммы. Есливы знакомы с языками C или C++, то, вероятно, догадываетесь о том, что то, что C#программист называет методом, C/C++-программист назовет функцией.

А поскольку C# —прямой потомок C++, термин “функция” также приемлемо использовать, когда речь идет оC#-методе.ПолиморфизмПолиморфизм (от греческого слова polymorphism, означающего “много форм”) — этокачество, которое позволяет одному интерфейсу получать доступ к целому классу действий.Простым примером полиморфизма может послужить руль автомобиля. Руль (интерфейс)остается рулем независимо от того, какой тип рулевого механизма используется вавтомобиле.

Другими словами, руль работает одинаково в любом случае: оснащен ли вашавтомобиль рулевым управлением прямого действия, рулевым управлением с усилителемили реечным управлением. Таким образом, поворот руля влево заставит автомобильпоехать влево независимо от типа используемого в нем рулевого управления. Достоинствотакого единообразного интерфейса состоит, безусловно, в том, что, если вы знаете, какобращаться с рулем, вы сможете водить автомобиль любого типа.32Часть I. Язык C#Тот же принцип можно применить и к программированию. Рассмотрим, например,стек (stack), т.е. область памяти, функционирующую по принципу “последним пришел —первым обслужен”.

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

Но благодаряполиморфизму в среде C# можно создать один общий набор “стековых” подпрограмм,который обрабатывает все три типа стека. Иными словами, зная, как использовать одинстек, можно использовать все остальные.Концепцию полиморфизма часто выражают такой фразой: “один интерфейс — многометодов”. Это означает, что для выполнения группы подобных действий можно разработатьобщий интерфейс.

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

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

Но благодарянаследованию объекту нужно доопределить только те качества, которые делают егоуникальным внутри его класса, поскольку он (объект) наследует общие атрибуты своегородителя. Следовательно, именно механизм наследования позволяет одному объектупредставлять конкретный экземпляр более общего класса.Первая простая программа/**/Настало время рассмотреть реальную C#-программу.Это простая C#-программа.Назовем ее Example.cs.Глава 2. Обзор элементов языка C#33using System;class Example {}// Любая C#-программа начинается с вызова метода Main().public static void Main() {Console.WriteLine("Простая C#-программа.");}На момент написания этой книги единственной доступной средой разработки C#программ была Visual Studio .NET. Эта среда позволяет отредактировать, скомпилировать ивыполнить C#-программу, причем это можно сделать двумя способами: с помощьюкомпилятора командной строки csc.exe или интегрированной среды разработки(Integrated Development Environment — IDE).

Здесь описаны оба способа. (Если выиспользуете иной компилятор, следуйте инструкциям, приведенным в сопроводительнойдокументации.)Использование компилятора командной строки csc.exeНесмотря на то что в случае коммерческих проектов вы, по всей вероятности, будетеработать в интегрированной среде разработки Visual Studio, использование C#-компиляторакомандной строки — самый простой способ скомпилировать и выполнить примерыпрограмм, приведенные в этой книге.

Для создания и запуска программ с помощью C#компилятора командной строки необходимо выполнить следующие действия.1. Ввести текст программы, используя любой текстовый редактор.2. Скомпилировать программу.3. Выполнить программу.Ввод текста программыПрограммы, представленные в этой книге, можно загрузить с Web-сайта компанииOsborne с адресом: www.osborne.com. Но при желании вы можете ввести текст программвручную.

В этом случае необходимо использовать какой-нибудь текстовый редактор,например Notepad. Однако помните, что при вводе текста программ должны быть созданыисключительно текстовые файлы, а не файлы с форматированием, используемым притекстовой обработке, поскольку информация о форматировании помешает работе C#компилятора. Введя текст приведенной выше программы, назовите соответствующий файлExample.cs.Компилирование программыЧтобы скомпилировать программу, запустите C#-компилятор, csc.exe, указав вкомандной строке имя исходного файла.C:\>csc Example.csКомпилятор csc создаст файл с именем Example.exe, который будет содержатьMSIL-версию этой программы.

Хотя MSIL-код не является выполняемым, тем не менее онсодержится в ехе-файле. При попытке выполнить файл Example.ехе система CommonLanguage Runtime автоматически вызовет JIT-компилятор. Однако имейте в виду: если выпопытаетесь выполнить Example.ехе (или любой другой ехе-файл, содержащий MSILкод) на компьютере, в котором не установлена среда .NET Framework, программавыполнена не будет ввиду отсутствия системы CLR.34Часть I. Язык C#На заметкуПеред запуском компилятора csc.ехе вам, возможно, придется выполнитьпакетный файл vcvars32.bat, который обычно расположен в папке//Program Files/Microsoft Visual Studio.NET/Vc7/Bin.

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

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

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

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