русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Инкапсуляция данных


Дата добавления: 2015-07-09; просмотров: 445; Нарушение авторских прав


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

В том случае, когда значения элементов используются только внутри класса и обращаться к ним из основной программы не нужно, а также с целью сокращения количества ошибок в про­грамме целесообразно объявить эти элементы частными (private). Если при описании класса опущена метка public, то элементы клас­са также считаются частными.

В приведенной ниже программе элементы name и sal класса zp объявлены как частные. Функции (методы) класса объявлены как

общие:

in_dat - функция, используемая основной программой для ввода исходных данных (имени служащего и оклада);

show_sal -функция, обеспечивающая вывод на экран част­ных элементов данных (name и sal);

change_sal - функция, позволяющая обратиться и скоррек­тировать частный элемент данных (sal).

Пример

#include<iostream.h>

#include<string.h>

class zp

{

private: //объявление частных элементов

char name[64];

float sal;

public: //объявление общих элементов

void in_dat(char *,float); //прототипы функций

void show_sal(void); float change_sal(float);

};

void zp::in_dat(char *new_name,float old_sal)

{

strcpy(name,new_name);

sal=old_sal;}

void zp::show_sal(void)

{

cout<<"оклад "<<name<<": "<<sal<<" рублей. "«endl;

}

float zp :: change_sal (float new_sal)

{

if(new_sal<2000)

{

cout<<"Новый оклад "<<name

<<" недопустимо мал ! "<<endl;



return (0);

}

sal=new_sal;

return (1);

}

void main(void)

{float new_sal;

zp father; //объявление объекта father

father.in_dat("Худанина H.M.", 2000.0);

cout<<"Старый ";

fatner.show_sal() ;

cout<<"Введите новый оклад:";

cin>>new_sal;

if (father.change_sal (new__sal)! =0)

{

cout<<”Новый ”;

father.show_ sal();

}

}

В результате решения этой программы на экран дисплея бу­дет выведено:

Старый оклад Худанина Н.М.: 2000 рублей.

Введите новый оклад: 3000

Новый оклад Худанина Н.М.: 3000 рублей.

При вводе значения оклада <2000 третья строка будет выгля­деть так: Новый оклад Худанина Н.М. недопустимо мал!

Таким образом, главной программе (main) известны лишь методы (in_dat, show_sal, change_sal), позволяющие работать с объектом (father). Элементы данных (name, sal) и способы обра­ботки этих элементов скрыты от главной программы..

#include<iostream.h>

#include<math.h>

#include<conio.h>

class line

{private:

float x1,x2;

float y1,y2;

float l;

public:

void Init (float,float);

void InitY (float,float);

void Dlina (void);

void Vivod (void);};

void line::Init (float c, float d)

{x1=c;x2=d;cout<<"x1="<<x1<<"x2="<<x2;

}

void line::InitY (float a,float b)

{ y1=a;y2=b;

cout<<"y1="<<y1<<"y2="<<y2;}

void line::Dlina (void)

{ l=sqrt(pow((x2-x1),2)+pow((y2-y1),2));}

void line::Vivod (void)

{cout<<"l="<<l;}

void main(void)

{line reh;

float c,d;

cin>>c>>d;

reh.Init(c,d

);

reh.InitY (5,6);

reh.Dlina();

reh.Vivod();

getch();}

 



<== предыдущая лекция | следующая лекция ==>
 | В целом для принтера программа будет иметь следующий вид


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.52 сек.