- •1 Положення про енергодарський інститут державного та муніципального управління ім. Р.Г. Хеноха "класичного приватного університету"
- •1.1 Функціональне призначення підприємства
- •1.2 Основна діяльність
- •2 Технічні характеристики робочого місця
- •3 Концепції об’єктно-орієнтованого програмування
- •4 Концепції візуального програмування
- •Перелік посилань
2 Технічні характеристики робочого місця
Під час проходження навчальної практики моє робоче місце було оснащено ПК з наступними технічними характеристиками:
-Універсальний Монітор LG– 1 шт.
-Клавіатура Ігрова Gemix W-240 – 1 шт.
-FLYPER-DELUXE; FTD-20 сумістна мишь - 1 шт.
-Gaming Headphones W-330 – 1шт.
-6 гиг ОЗУ- DDR3.
-Відео карта: Geforce 650 GTX.
-Жорсткий диск Hitachi.
-Процесор AMD Athlon(tm) II X4 651 Quad-Core Processor.
Для виконання теоретичних та практичних завдань з практики використовувалося наступне програмне забезпечення:
– операційна система – Windows 7 64 bit;
– інтегроване середовище розробки – Visual studio 2015;
– браузер – Google Chrome;
– текстовий редактор – Microsoft Word:2003, 2007;
– середовище розробки – Dev C++.
3 Концепції об’єктно-орієнтованого програмування
Інкапсуляція – один з трьох основних механізмів об'єктно-орієнтованого програмування. Йдеться про те, що об’єкт вміщує не тільки дані, але і правила їх обробки, оформлені в вигляді виконуваних фрагментів (методів). А також про те, що доступ до стану об'єкта напряму заборонено, і ззовні з ним можна взаємодіяти виключно через заданий інтерфейс (відкриті поля та методи), що дозволяє знизити зв'язність. Таким чином контролюються звернення до полів класів та їхня правильна ініціалізація, усуваються можливі помилки пов'язані з неправильним викликом методу.
Оскільки користувачі працюють лише через відкриті елементи класів, то розробники класу можуть як-завгодно змінювати всі закриті елементи і навіть перейменовувати та видаляти їх, не турбуючись, що десь хтось їх використовує у своїх програмах [1].
Приклади на Java та С++
//На Java:
classPoint{
//можливий доступ лише з методівданогокласу
privateintx,y;
//можливий доступ лише з методівданогокласу
privatebooleanvisibility;
voidcreatePoint(inta,intb){
x=a;y=b;
visibility=true;
}
voidsetVisibility(booleanvisibility){
this.visibility=visibility;
}
intgetX(){
returnx;
}
intgetY(){
returny;
}
}
Визначення нового класу (породжений клас, підклас, англ. derivedclass, англ. subclass) може базуватись на визначенні вже існуючого (базовий клас, англ. baseclass, англ. superclass). В такому випадку, новий клас отримає властивості та поведінку базового класу, та доповнить їх своїми власними. У випадку одиничного успадкування, у кожного класу може бути лише один безпосередній базовий клас. У випадку множинного успадкування, дозволяється існування декількох безпосередніх надкласів.
Представником мови, яка має явне множинне успадкування є C++. Оскільки при множинному успадкуванні виникає ряд проблем, тому у таких мовах, як наприклад D, Java, C# дозволяють явно тільки просте (одинарне) успадкування. В разі необхідності, у даних мовах множинне успадкування можна реалізувати за допомогою інтерфейсів.
Застосування механізму успадкування дозволяє покращити повторне використання коду шляхом використання вже визначених властивостей та методів (поведінки) базових класів.
#include<iostream>
usingnamespacestd;
classFirstClass// базовийклас
{
protected:// специфікатордоступа
int value;
public:
FirstClass()
{
value=0;
}
FirstClass(int input )
{
value= input;
}
voidshow_value()
{
cout<< value <<endl;
}
};
classSecondClass:publicFirstClass// похіднийклас
{
public:
SecondClass() :FirstClass () // конструкторкласуSecondClassвикликаєконструкторкласуFirstClass
{}
SecondClass(intinputS) :FirstClass (inputS) // inputSпередаєтьсявконструкторзпараметромкласуFirstClass
{}
voidValueSqr () // підносить value доквадрату. Безспецифікаторадоступа protectedцяфункціянемоглабзмінитизначенняvalue
{
value *= value;
}
};
intmain()
{
setlocale(LC_ALL, "ukr");
FirstClassF_object(3); // об'єктбазовогокласу
cout<<"value F_object = ";
F_object.show_value();
SecondClassS_object(4); // об'єктпохідногокласу
cout<<"value S_object = ";
S_object.show_value(); // викликметодубазовогокласу
S_object.ValueSqr(); // value доквадрату
cout<<"квадрат value S_object = ";
S_object.show_value();
//F_object.ValueSqr(); // базовийкласнемаєдоступудометодівпохідногокласу
cout<<endl;
return0;
}
Поліморфізм– концепція в програмуванні та теорії типів, відповідно до якої використовується спільний інтерфейс для обробки різних спеціалізованих типів.
На противагу поліморфізму, концепція мономорфізму вимагає однозначного зіставлення.
//НаС++:
classPoint {
private:
int x, y;
char x2,y2;
public:
voidsetXY(int _x, int _y)
{
x=_x;
y=_y;
}
voidsetXY(char _x, char _y)
{
x2=_x;
y2=_y;
}
};
