Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchyot_gotovy_praktika.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
713.73 Кб
Скачать

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;

}

};

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