Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
С#.Классы.Опр-е членов классов.Содержание книги
Поиск на нашем сайте
Члены классов.Классы-сердце кажд. ООЯ.Класс представ-т собой инкапсуляцию данных и методов для их обработки. Класс опр-ся как список своих членов.К членам класса отн-ся его поля(св-ва) и ф-ции(методы).Кажд.члену класса можно установить его область доступа.Область доступа члена класса опр-т участки кода,из кот.к этому члену будет возможно обращаться. Классы в языке C# опр-ся:public-Члены,доступные люб.классу программы;internal-члены, доступные люб.классу в том же модуле программы;internal protected-члены,доступные тек. классу и всем его подклассам в том же модуле программы;protected-члены,досутпные только тек.классу и всем его подклассам;private-члены, доступные только из тек.класса (тип по умолчанию). Поле.Так наз-ся член-переменная,содержащий нек.зн-е.В ООП поля иногда наз-т данными объекта.К полю можно применять несколько модификаторов в зависимости от того, как вы собираетесь его исп-ть.В число модификаторов входят static,readonly и const.Метод.Это реальный код, воздействующий на данные объекта (или поля).Здесь мы сосредоточимся на определении данных класса.Свойства.Их иногда называют «разумными» полями (smart fields), поскольку они на самом деле явл-ся методами,кот.клиенты класса воспринимают как поля.Это обеспечивает клиентам большую степень абстрагирования за счет того,что им не нужно знать,обращаются ли они к полю напрямую или через вызов метода-аксессора.Константы.Как можно предпол-ть, исходя из имени,константа-это поле,зн-е кот.изм-ть нельзя. Индексаторы.Если св-ва-это «разумные» поля,то индексаторы-это «разумные» массивы,так как они позволяют индексировать объекты методами-аксессорами get и set.С помощью индексатора легко проиндексировать объект для установки или пол-я зн-й.События.Событие вызывает исполнение нек.фрагмента кода.События-неотъемлемая часть программ-я для Microsoft Windows. C#.Классы.Типы конструкторов. При опр-ии класса имеется возможность задать для объекта нач.зн-е.Спец.метод класса,называемый конструктором,вып-ся каждый раз,когда созд-ся новый объект этого класса. Конструктор–это метод,имя кот.совпадает с именем класса. Конструктор не возвращает никакого зн-я.Конструктор без аргументов наз-ся станд.конструктором или констр-ром по умолчанию.Можно опр-ть несколько конструкторов с разл. наборами аргументов.Возможности инициализации объектов в таком случае расширяются.Конструктор копир-я–констр-р класса с единственным параметром,тип кот.определен как ссылка на тип текущего класса.Конструктор с аргументом,в кот.в качестве аргумента выступает объект того же самого класса,наз-т копирующим,поскольку предполагается,что при его вып-ии созд-ся объект-копия др.объекта.Конструкторы, особенно копирующие,довольно часто вып-ся неявно. Констр-р инициализации.Вызов конструкторов баз.класса и конструкторов для атрибутов класса можно задать явно. Особенно это важно,если есть необх-ть либо исп-ть нестанд. конструкторы,либо присвоить нач.зн-я атрибутам класса. Вызов конструкторов запис-ся после имени конструктора класса после двоеточия.Друг от друга вызовы отделяются запятой.Такой список наз-ся списком инициализации или просто инициализацией.Конструктор преобраз-я.Констр-р, получающий один параметр,опр-т преобраз-е из типа своего класса.Такие преобраз-я неявно прим-ся допол-но к обычн. ариф.преобраз-ям.Параметризованные констр-ры.Параметры вносятся в конструктор точно так же,как в метод:для этого достаточно объявить их внутри круглых скобок после имени конструктора.Статические конструкторы.Конструктор класса можно объявить статическим.Стат. констр-р обычно исп-ся для инициализации атрибутов,кот.примен-ся к классу в целом,а не к конкретному его экземпляру.Стат.констр-р служит для инициализации аспектов класса до создания объектов этого класса. Конструкторы и деструкторы. Констр-р инициализирует объект при его создании.Он имеет такое же имя,что и сам класс,а синтаксически подобен методу.Однако в опр-ии конструкторов не указ-ся тип возвращаемого зн-я.Формат записи конструктора такой: доступ имя_класса () { // тело конструктора } Обычно конструктор исп-ся,чтобы придать переменным экземпляра,определенным в классе,нач.зн-я или вып-ть исх.действия,необходимые для созд-я полностью сформированного объекта.Кроме того,обычно в качестве эл-та доступ исп-ся модификатор доступа public,поскольку констр-ры вызываются вне их класса.Все классы имеют конструкторы независимо от того,определите вы их или нет,поскольку С# автоматически предоставляет конструктор по умолчанию,кот.инициализирует все переменные-члены имеющие тип зн-й,нулями,а переменные-члены ссылочного типа-null-зн-ями.Но если вы определите собств.констр-р,констр-р по умол-ю больше не исп-ся.Параметризованные конструкторы.Параметры вносятся в конструктор точно так же,как в метод:для этого достаточно объявить их внутри круглых скобок после имени конструктора.Статические конструкторы.Конструктор класса можно объявить статическим.Стат. констр-р обычно исп-ся для нициализации атрибутов,кот.примен-ся к классу в целом,а не к конкрет-му его экземпляру.Стат.констр-р служит для инициализации аспектов класса до создания объектов этого класса.Стат. констр-р вызывается автоматически,причем до вызова констр-ра экземпляра.В общем случае static-констр-р будет выполнен до люб.констр-ра экземпляра.Кроме того,static-констр-ры должны быть закрытыми,и их не может вызвать программа. Деструкторы. Ср-ва языка С# позволяют опр-ть метод,кот.должен вызываться непосредственно перед тем,как объект будет окончательно разрушен с-мой сбора мусора. Этот метод наз-ся деструктором,и его можно исп-ть для обеспеч-я гарантии "чистоты" ликвидации объекта.Формат записи деструктора: ~имя_класса() { // код деструктора } Очевидно,что эл-т имя_класса здесь означает имя класса. Деструктор объявляется подобно констр-ру за исключением того,что его имени предшествует символ "тильда" (~). Деструктор не возвращает зн-я.Чтобы добавить деструктор в класс,достаточно включить его как член.Он вызывается в момент,предшествующий процессу утилизации объекта.В теле деструктора вы указываете действия, кот.должны быть выполнены перед разрушением объекта.
11. C#.Методы. В типах int,string,Console,DateTime,Math и Random в качестве примеров исп-ия методов можно привести след.предлож-я: offsetMeeting=meeting.AddHours(offset); totalMins=int.Parse(Console.ReadLine()); В кажд.случае вызов метода сопровождается скобками даже при отсутствии параметров,как в случае ReadLine().Именно таким способом мы отличаем вызов метода от исп-я св-ва. Общ.форма объявления метода:модификатор_доступа тип_метода идентификатор_метода {параметры) {предложения и объявления переменных return выр-е //Если тип.метод } //Параметры тип идентификатор,тип идентификатор… Метод объявл-ся с указанием своего типа.В этом плане метод может быть типизированным(с именем нек.типа) или нетипизированным(типа void).Как и все члены,метод может быть закрытым(private) или открытым(public).По умолчанию назначается атрибут private.Методы могут содержать только переменные,но не константы.Если метод типизирован,в нем должно быть хотя бы одно предложение return с выр-ем,рез-т вычисления кот.имеет тот же тип,что и тип самого метода. Нетип.метод может иметь предложения return без выр-й. Переменные в методе не инициализированы и им следует явным образом присвоить зн-я перед их исп-ем.Переменные имеют область видимости,кот.действует только внутри метода;кажд.объявленное в методе имя имеет смысл только внутри этого метода.Тип.методы широко исп-ся в С#;их отличительной чертой явл-ся то,что они возвращают зн-е.Тип.метод обязательно должен сод-ть предложение return, следовательно,перед завершением он создает зн-е.Это треб-е соотв-т правилам его вызова.Вызов метода: идентификатор_метода (список__аргументов).Зн-я аргументов перед-ся параметрам метода;осущ-ся вход в метод,и его предложения вып-ся до конца метода или до предложения return.Нетип.(типа void) методы вызываются, как предложения: они не могут быть частью выр-й.Тип. методы вызываются,как часть выр-я,но их можно также вызывать и как предложения,однако в этом случае их возвращаемое зн-е теряется.В ООП методы исп-ся в нескольких разл.контекстах:ф-ции объекта,структурирование программы,обеспеч-е функц-х возможностей и стат.методы. Еще одна класс-я методов заключ-ся в разделении всех методов на статические и методы экземпляра.Как и стат. поля,стат.методы объявляются с ключевым словом static и сущ-т для класса только в единственном экземпляре.Эти методы вызываются указанием их имени после имени типа и точки.Методы экземпляра относ-ся к конкретному экземпляру класса;их имена при вызове предваряются именем объекта и точкой.
12. Инкапсуляция -обеспеч-е скрытности данных,используемых в каком-либо классе.Модификаторы доступа в С#:public-Член доступен вне опр-я класса и иерархии производных классов; private-Член недоступен за пределами области видимости определяющего его класса,поэтому доступа к этим членам нет даже у производных классов;protected-Член невидим за пределами класса,к нему могут обращаться только производные классы;internal-Член видим только в пределах тек.единицы компиляции.Модификатор доступа internal в плане ограничения доступа явл-ся гибридом public и protected,зависимым от местоположения кода.Если вы не хотите оставить модификатор доступа для дан.члена по умолчанию (private),задайте для него явно модификатор доступа.Этим С# отлич-ся от C++,где член,для кот.явно не указан модификатор доступа,принимает на себя хар-ки видимости,определяемые модификатором доступа,заданным для предыд.члена.Для объявления членов на С# как public (член а)и protected (член d) необх-мо исп-ть след.инстр-цию: class AccessCSharp public DifAccessInCSharp
|
||||
Последнее изменение этой страницы: 2016-08-26; просмотров: 568; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.78.47 (0.01 с.) |