Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50_1.docx
Скачиваний:
9
Добавлен:
02.08.2019
Размер:
707.62 Кб
Скачать
  1. Понятие объекта, его состояние и поведение, классы, определение класса и объявление класса.

Основная идея ООП- объединение(инкапсуляция) данных и методов их обработки в единое целое – объект, который может использоваться как самостоятельная программная единица, или как часть другого объекта, или является базой для создания новых объектов.

В объекте устанавливается связь между данными и действиями над ними, эта часть в ООП имеет большое смысловое значение, определяемое классом решаемых задач. Объект – это экземпляр класса, то есть переменная определяемого пользователем типа.

Определение класса в С++ выглядит так же как и определение структуры, только вместо struct пишется class: class <имя_класса>{/*поля данные*/ /*методы*/ };

Поля могут иметь любой тип, кроме типа того же класса, но могут быть указателями и ссылками на этот класс. Поля могут быть описаны с модификатором const, но инициализируются они один раз и не должны изменяться. Имея описание, можно символическое <имя_класса> использовать для описания переменных. Такая переменная называется объектом, или экземпляром данного класса. Используя идентификатор типа <имя_класса>, как любой другой, созданный пользователем или стандартный, можно создавать произвольное количество простых переменных (объектов, экземпляров этого класса), массивов объектов данного класса, или указателей на объекты данного класса.

Примеры описание классов и объектов:

Class TMoney {/*…*/};

TMoney t – простая переменная, объект класса Tmoney.

TMoney *p – указатель на объект класса TMoney.

TMoney m[50] – массив объектов класса TMoney.

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

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

Объявлять переменные можно и с использованием ключевого слова class:

Class TMoney t;

Class TMoney *p;

Class Tmoney m[50], но чаще экземпляры класса описывают без использования ключевого слова class.

Так же, как и при описании других типов, можно одновременно при описании идентификатора типа описать и величины этого типа:

Class Tclass1{*/поля и методы*/} p1,p2; Переменные p1 и p2 это просты переменные типа Tclass 1. Однако более предпочитаемым считается описание: Tclass1 p3,p4,*p,m[50]; Заголовок описания класса заканчивается точкой с запятой.

Class <имя класса>; называют объявлением класса.

Класс с идентификатором типа <имя класса> еще не определен, и переменные такого класса не могут быть использованы, но могут быть использованы ссылки на этот класс. Это используется если первый класс зависит от второго, а описание второго недоступно.

Определение класса и структуры отличаются не только внешне, первым заголовочным словом, но и тем что всё что описано внутри класса недоступно извне класса по умолчанию. Например, имея класс person1 и структуру person2 :

Class person1 { struct person2{

String fio; string fio;

Double summa;} double summa;}

-можно определить переменную Ivanov структурного типа person2, но нельзя объявить объект Petrov класса person1:

Person2 Ivanov = {“Иванов И.И.” , 10000.00} можно

Person1 Petrov = {“Петров П.П.” , 10000.00} нельзя

Кроме того, вне определения объекта нельзя обратиться к полям Petrov.fio и Petrov.summa.

В этом заключается свойство классов – инкапсуляция, сокрытие информации от внешнего мира.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]