Мегаобучалка Главная | О нас | Обратная связь


Понятие объекта в ООП. Класс.



2019-08-13 321 Обсуждений (0)
Понятие объекта в ООП. Класс. 0.00 из 5.00 0 оценок




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

Пример

Допустим, нам в программе необходимо работать со странами. Страна – это абстрактное понятие. У нее есть такие характеристики, как название, население, площадь, флаг и другое. Для описания такой страны будет использоваться класс с соответствующими полями данных. Такие страны, как Россия и Украина будут уже объектами (конкретными представителями типа страна).

 

Ссылочный и значимый типы данных. Передача параметров по ссылке и по значению. Модификаторы параметров.

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

• по значению;

• по ссылке.

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

int GetMax(int, int);

принимает два целочисленных аргумента по значению.

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

 

 

Представление класса в памяти. Ссылка this . Разворачивание класса при компиляции.

В языке C# имеется ключевое слово this, которое обеспечивает доступ к текущему экземпляру класса. Одно из возможных применений ключевого слова this состоит в том, чтобы разрешать неоднозначность контекста, которая может возникнуть, когда входящий параметр назван так же, как поле данных данного типа. Разумеется, в идеале необходимо просто придерживаться соглашения об именовании, которое не может привести к такой неоднозначности.

 

Конструктор и деструктор. Финализатор. Типы конструкторов.

Конструкторы.

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

Имя конструктора совпадает с именем класса. Конструкторов может быть несколько. В этом случае используется механизм перегрузки функции.

Основные виды конструкторов:

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

конструктор инициализации

конструктор копирования (передается ссылка на объект).

Деструкторы.

Особый вид метода, применяемый для освобождения памяти, занимаемой объектом; вызывается автоматически, когда объект выходит из области видимости.

Формат деструктора:

~ имя класса( ) {…..}

Финализатор — это метод класса, который автоматически вызывается средой исполнения в промежутке времени между моментом, когда объект этого класса опознаётся сборщиком мусора как неиспользуемый, и моментом удаления объекта (освобождения занимаемой им памяти). Это уже обратная штука — nondeterministic destruction.
То есть главный минус финализатора в том, что мы не знаем, когда он вызовется. Это может создать огромное количество проблем.

Виды конструкторов[править | править код]

Разнообразные языки программирования представляют несколько разновидностей конструкторов:

· конструктор с параметрами;

· конструктор по умолчанию, не принимающий аргументов;

· именованный конструктор — функция, предполагающая явный вызов по имени, работающая как конструктор

· конструктор копирования — конструктор, принимающий в качестве аргумента объект того же класса (или ссылку из него);

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

· конструктор перемещения (специфично для C++11)

 



2019-08-13 321 Обсуждений (0)
Понятие объекта в ООП. Класс. 0.00 из 5.00 0 оценок









Обсуждение в статье: Понятие объекта в ООП. Класс.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (321)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)