Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал по ооп.docx
Скачиваний:
3
Добавлен:
04.08.2019
Размер:
63.16 Кб
Скачать
  1. Классы, поля, методы в c#

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

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

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

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

Преимущества ООП: 1)Сокращение количества межмодульных вызовов. 2)Уменьшение объема информации, передаваемой между модулями. 3)Возможность вести независимую разработку объектов программы.

Недостатки: Некоторое снижение быстродействия за счет более сложной организации программной системы

  1. Определение типов. Классификация систем типизации

  2. Система типов cts. Базисные типы

CTS (common type system) общая система типов

Функции:

  • Описывает типы данных и операции

  • Совместимость типов в разных ЯП

  • Имеет объектно – ориентированную направленность

Категории данных:

  • Значимые типы

  • Ссылочные типы

Управление типами в CTS:

  • Типы могут быть исполнены после инициализации

  • Над типами 2 рода преобр-й (явные/неявные)

  • Типы объединяются в совокупности (пространство имён, файлы, сборки)

  • Ссылочные типы

  • Типы значения

Упаковка(boxing)- приведения значимого типа к ссылочному

Обнуляемые типы:

  • Поддержка null – значений для значимых типов

  • Стандартизация подхода к задаче

  • Работа только с value Type типами

Чтобы определить переменную, которая может принимать ещё и null значение

  1. Пространство имен. Преобразование типов

Пространство имён:

  • Много общего с пространством имен в с++ и пакетами в java

  • Выполняют логическую группировку

  • Могут содержать в себе классы, структуры, интерфейсы и др. пространства имен

  • не могут содержать методов и данных

  • Позв. описывать типы с одинаковыми именами (в различных пространствах)

  • Могут располагать в одном или нескольких различных файлов

  • Используются через директиву using

  • можно и без using, но с полным именем

Пространства имен (namespace) и ссылки

  • Для проекта могут быть указаны ссылки

  • Каждая ссылка идентифицирует универсальную сборку

  • Передается c# компилятору по ссылке

  • пространства имён дают возможность сохранять именования на уровне ЯП

  • ссылки указывают на сборку для использования в проекте

Преимущества типизации на .NET:

  • платформа использует CTS

  • строгое соответствие между примитивными типами ЯП и базовыми классами

  • явное разделение на ссылочные и значимые типы

гибкий и надёжный механизм преобразования типов значений в ссылочные и обратно (boxing & unboxing)

Явные(explicit):

  • Когда преобразование к другому типу напрямую несовместимо

  • Требуют вызова, могут приводить к потере точности

  • Checked-проверка

  • long- int, ...

Неявные(implicit):

  • Когда безопасно

  • Автоматически, всегда успешно

  • int- long, float- double, long- float

Оператор перечисления:

  • Список поименованных констант

  • Описываются словом enum

  • Встроено представляется типом INT? Но может быть и другим типом

  • Сильно типизирован

Тип System.Object базовый класс для всех типов .net , при описании типа по умолчанию наследник System.Object

Важные методы:

  • equals()- сравн. объекты

  • ToString()- предст. объекта как строки

  • GetHashCode()- выч. хеш-кода

  • Finalize()- уничтожение

  • GetType()- возвращение метаданных

  • MemberwiseClone()- кодирует бинарные представления в новую переменную

  • ReferenceEquals()- сравн. 2 объекта по ссылке

Клонирование объектов:

  • Создаёт идентичные копии

  • Копируется значение всех полей

  • Типы, которые позволяют клонирование

  • Clone() копирует рекурсивно все поля

Упаковка значимых типов (преобразование значимых типов в ссылочные и наоборот) Boxing-UnBoxing.