Лекция: Класс. Поля и методы класса

 

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

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

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

class FirstCl { int a,b; …}

class FirstCl { private: int a,b; … }

одинаковы. Private означает, что поля доступны (“видны”) только в методах данного класса. Напомним, что наследование пока здесь для упрощения не учитываем. В других функциях, не принадлежащих классу, в том числе в main, эти переменные нельзя использовать ни напрямую, ни через объект данного класса. В примере 1 в main нельзя написать ни a=5, ни cout<<obj.a. Благодаря этому реализуется вторая часть принципа инкапсуляции ООП. Согласно ему, с полями класса можно работать только в методах этого класса, а в других функциях, не принадлежащих этому классу, в том числе и в main, они недоступны.

Методы класса, как правило, записываются после ключевого слова public (общедоступный), что означает следующее. Функции класса с таким атрибутом доступа можно вызывать как из методов данного класса напрямую, без записи имени объекта (MyOut()), так и из других функций, не являющихся членами этого класса, через объект данного класса (obj.MyPrint()).

Если поля класса объявить с ключевым словом public, то их можно использовать не только в функциях данного класса, но и в других функциях, в том числе и в main. А это противоречит принципу инкапсуляции ООП. Другими словами, несмотря на использование типа class, такое программирование не является объектно-ориентированным.

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

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

· внутренние (встроенные) методы (пример 2);

· внешние методы (пример 1).

Их сравнительная характеристика такая же, как и для обычных функций.

 

 

еще рефераты
Еще работы по информатике