Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Без имени 2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
139.26 Кб
Скачать
  1. Классы и структуры в c#. Класс Object, его методы.

Типы данных – это классы:

Язык C# в большей степени, чем язык C++, является языком объектного программирования

Это выражается в том, что в языке C# сглажено различие между типом и классом: все типы - встроенные и пользовательские - одновременно являются классами, связанными отношением наследования

Класс Object:

Родительским, базовым классом является класс Object; все остальные типы или, точнее, классы являются его потомками, наследуя методы этого класса

У класса Object есть четыре наследуемых метода: Equals, GetType, ToString, GetHashCode

Методы класса Object:

bool Equals (object obj) - проверяет эквивалентность текущего объекта и объекта, переданного в качестве аргумента;

System.Type GetType () - возвращает системный тип текущего объекта;

string ToString () - возвращает строку, связанную с объектом. Для арифметических типов возвращается значение, преобразованное в строку;

int GetHashCode() - служит как хэш-функция в соответствующих алгоритмах поиска по ключу при хранении данных в хэш-таблицах

  1. Объявление и описание класса. Модификаторы доступа.

Объявление классов Производится так же, как и в языке C++, а именно:

[атрибуты] [модификаторы] class имя_класса [:список_родителей]

{

тело_класса

}

Модификаторы предназначены для уточнения определения класса

С их помощью можно определить области видимости класса, возможность его наследования, готовность к работе всего класса и отдельных методов

Модификатор

Пояснение

public

Класс доступен из любой точки программы (доступ по умолчанию)

protected

Класс доступен только его потомкам

internal

Класс доступен в сборке, в которой он определен

private

Вложенный класс доступен только внутри содержащего его класса

sealed

Класс не может иметь наследников

abstract

Класс обязательно должен перекрываться в потомках

  1. Уровни доступности и уровни принадлежности членов класса.

Как и класс в целом, отдельные его члены характеризуются уровнем доступности, который задается с помощью следующих модификаторов:

public – открытые члены класса,

protected – защищенные члены класса,

private – закрытые члены класса,

internal – внутренние члены класса,

Смысл этих модификаторов тот же, что и в случае классов

Члены класса характеризуется уровнем принадлежности, который может быть:

уровнем принадлежности классу

уровнем принадлежности экземпляру класса

Уровень принадлежности классу задается модификатором static в объявлении соответствующего члена класса

  1. Данные-члены класса.

Данные-члены содержат данные класса — поля, константы, события

Данные-члены могут быть статическими (static); говорят, что такое данное принадлежит уровню класса

Если член класса не объявлен явно как static, то он является членом экземпляра класса (принадлежит уровню экземпляра)

Поля класса:

Поля (field) — это переменные, входящие в состав класса

После создания экземпляра класса к его полям можно обращаться с использованием синтаксиса Объект.ИмяПоля, например

PhoneCustomer Customer1 = new PhoneCustomer();

Customer1.FirstName = "Simon";

Константы класса:

Константы могут быть ассоциированы с классом тем же способом, что и переменные

Константа объявляется с помощью ключевого слова const, например

class PhoneCustomer

{

public const string DayOfSendingBill = "Monday";

public int CustomerlD;

}

События класса:

События (events) — это члены класса, позволяющие объекту уведомлять вызывающий код о том, что случилось нечто достойное упоминания, например, изменение свойства класса либо некоторое взаимодействие с пользователем

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

  1. Объявление полей и констант.

Аналогично объявлению переменных:

[модификаторы] имя_типа имя_поля [=инициализирующее_выражение]

Инициализирующее выражение может содержать литералы, имена констант и статических полей, например

private float len = 2*Pi*r;

Здесь Pi – константа, r – статическое поле

Константы (constants) – это данные-члены, значения которых устанавливаются на этапе компиляции и не могут быть изменены в процессе выполнения программы

Константы объявляются с модификатором const и инициализируются константными выражениями

Константы являются статическими по умолчанию

  1. Функции-члены класса.

Функции-члены — это члены класса, которые обеспечивают возможность манипулирования данными класса

В число функций-членов входят:

методы,

свойства,

конструкторы,

финализаторы,

операции,

индексаторы

Методы класса:

Методы (methods) — это функции, ассоциированные с определенным классом

Как и данные-члены, по умолчанию они являются членами экземпляра

Они могут быть объявлены статическими с помощью модификатора static

Свойства класса:

Свойства (property) — это наборы функций чтения и записи для закрытых полей класса

В языке С# предусмотрен специальный синтаксис для реализации свойств, поэтому писать собственные методы с именами, начинающимися на Set и Get, не понадобится

Конструкторы класса:

Конструкторы (constructor) — это специальные функции, вызываемые автоматически при инициализации объекта

Имена конструкторов совпадают с именами классов, которымони принадлежат, и они не имеют типа возврата

Конструкторы полезны для инициализации полей класса

Финализаторы класса:

Финализаторы (finalizer) похожи на конструкторы, но вызываются, когда среда CLR определяет, что объект больше не нужен

Они имеют то же имя, что и класс, но с предшествующим символом тильды (~)

Предсказать точно, когда будет вызван финализатор, невозможно

Операции и индексаторы класса:

Операции (operator) — это функции-члены, переопределяющие способ выполнения существующих операций применительно к объектам данного класса (так называемая перегрузка операций)

Индексаторы (indexer) позволяют индексировать объекты таким же способом, как массив или коллекцию.