Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Об єктно-орієнтоване програмування

Тип Реферат
Предмет Информатика
Просмотров
1330
Размер файла
25 б
Поделиться

Ознакомительный фрагмент работы:

Об єктно-орієнтоване програмування

Реферат з інформатики

Об’єктно-орієнтоване програмування


У порівнянні з традиційними способами програмування ООП володіє поруч переваг. Головне з них полягає в тім, що ця концепція найбільшою мірою відповідає внутрішній логіці функціонування операційної системи (ОС) Windows. Програма, що складається з окремих об'єктів, відмінно пристосована до реагування на події, що відбуваються в ОС. До інших переваг ООП можна віднести велику надійність коду і можливість повторного використання відпрацьованих об'єктів.

У цій главі розглядаються способи реалізації основних механізмів ООП у Object Pascal і Delphi:

- поняття об'єкта, класу і компонента;

- основні механізми ООП: інкапсуляція, спадкування і поліморфізм;

- особливості реалізації об'єктів;

- взаємодія властивостей і методів.

Матеріал глави розрахований на читача, що має представлення про саму мову Object Pascal, його операторах і основних можливостях.

Об'єкт і клас

Класом у Object Pascal називається структура мови, що може мати у своєму складі перемінні, функції і процедури. Перемінні в залежності від призначення іменуються чи полями властивостями (див. нижче). Процедури і функції класу — методами. Відповідний класу тип будемо називати об'єктним типом:

type

TMyObject = class (Tobject)

MyField: Integer;

function MyMethod: Integer;

end;

У цьому прикладі описаний клас TMyObject, що містить поле MyField і метод MyMethod.

Поля об'єкта аналогічні полям запису (record). Це дані, унікальні для кожного створеного в програмі екземпляра класу. Описаний тут клас TMyObject має одне поле — MyField.

Методи — це процедури і функції, описані усередині класу і призначені для операцій над його полями. До складу класу входить покажчик на спеціальну таблицю, де міститься вся інформація, потрібна для виклику методів. Від звичайних процедур і функцій методи відрізняються тим, що їм при виклику передається покажчик на той об'єкт, що їх викликав. Тому оброблятися будуть полючи саме того об'єкта, що викликав метод. Усередині методу покажчик на його об'єкт, що викликав, доступний під зарезервованим ім'ям Self.

Класи можуть бути описані або в секції інтерфейсу модуля, або на верхньому рівні вкладеності секції реалізації. Не допускається опис класів "де потрапило", тобто усередині процедур і інших блоків коду.

Дозволено випереджальне оголошення класів, як у наступному прикладі:

Type

TFirstObject = class;

TSecondObject = class(TObject)

Fist : TFirstObject;

end;

TFirstObject = class(TObject)

...

end;

Щоб використовувати клас у програмі, потрібно, як мінімум, оголосити перемінну цього типу. Перемінна об'єктного типу називається екземпляром чи класу об'єктом.

var

AMyObject: TMyObject;

До введення терміна "клас" у мові Pascal існувала двозначність визначення "об'єкт", що міг позначати і тип, і перемінну цього типу. Тепер же існує чітка границя: клас — це опис, об'єкт — те, що створено відповідно до цього опису.

Як створюються і знищуються об'єкти?

Ті, хто раніш використовував ООП у роботі на C++ і особливо в Turbo Pascal, будьте уважні: у Object Pascal екземпляри об'єктів можуть бути тільки динамічними. Це означає, що в приведеному вище фрагменті перемінна AMyObject насправді є покажчиком, що містить адресу об'єкта.

Об'єкт "з'являється на світло" у результаті виклику спеціального методу, що инициализирует об'єкт — конструктора. Створений екземпляр знищується іншим методом — деструктором.

AMyObject := TMyObject.Create;

{ дії зі створеним об'єктом }

AMyObject...Destroy;

Але, скаже уважний читач, адже об'єкта ще ні, як ми можемо викликати його методи? Справедливе зауваження. Однак зверніть увагу, що викликається метод TMyObject.create, а не AMyObject.Create. Є такі методи (у тому числі конструктор), що успішно працюють до (чи навіть без) створення об'єкта. Про подібні методи, називаних методами класу, піде мова трохи нижче.

У Object Pascal конструкторів у класу може бути кілька. Загальноприйнято називати конструктор Create (на відміну від Turbo Pascal, де конструктор звичайно називався init, і від C++, де його ім'я збігається з ім'ям класу). Типова назва деструктора — Destroy.

type

TMyObject = class(TObject)

MyField: Integer;

Constructor Create;

Destructor Destroy;

Function MyMethod: Integer;

end;

Для знищення екземпляра об'єкта рекомендується використовувати метод Free, що спочатку перевіряє покажчик ( чине дорівнює він ыи) і тільки потім викликає Destroy:

AMyObject.Free;

До передачі керування тілу конструктора відбувається власне створення об'єкта — під нього приділяється пам'ять, значення всіх полів обнуляются. Далі виконується код конструктора, написаний програмістом для ініціалізації екземплярів даного класу. Таким чином, хоча на перший погляд синтаксис конструктора схожий з викликом процедури (не визначене значення, що повертається,), але насправді конструктор — це функція, що повертає створений і инициализированный об'єкт.

Щоб правильно инициализировать у створюваному об'єкті полючи, що відносяться до класу-предка, потрібно відразу ж при вході в конструктор викликати конструктор предка за допомогою зарезервованого слова inherited:

constructor TMyOb ject. Create;

begin

inherited Create;

end;

Що таке ядро

Ядро є серцем операційної системи і забезпечує виконання основних системних задач для роботи інших додатків.

Підготовка до побудови нового ядра

Для цього потрібні лише невеликі знання мови програмування С. небагато везіння і терпіння.

Навіщо взагалі може знадобитися установка нового ядра? Основних причин дві:

- бажання обновити його, щоб використовувати нове апаратне забезпечення;

- необхідність видалити з нього непотрібні модулі, щоб зменшити необхідну ядром пам'ять.

Починати в будь-якому випадку випливає з визначення того, яка версія ядра у вас установлена. Це робиться за допомогою команд

uname -іrelease

чи

uname -r

Ви одержите відповідь у формі

MajorVersionNumber.MinorVersionNumber.PatchLevel

Згідно GPL ядро може модифікувати кожної, хто здатний на це, однак офіційним "випускаючим" ядра є Линус Торвальдс.

Настроювання нового ядра

Для створення нового ядра спершу варто настроїти вихідні тексти, файли яких розташовуються в каталозі /usr/src/linux. Крім того, у вашій системі обов'язково повинний бути встановлений компілятор С. Якщо ви не встановлювали ні вихідних текстів, ні компілятора, самий час зробити це за допомогою команд

rpm -і kernel-source-2.2.5-15.і386.rpm

rpm -і egcs-2.91.66.і386.rpm

Тепер треба знайти нове ядро, що найпростіше зробити через Internet за адресою met-lab,unc.edu чи ftp, kernel.оrg.

Далі, у випадку накладення "латок" на виявлені діри, вам належить удатися до допомоги команди patch. Після цього можна приступати до настроювання і побудови ядра. У залежності від ваших смаків, можете скористатися командним рядком, текстовим чи меню, якщо ви установили X Windows, що відповідає Х-программой.

Настроювання з командного рядка

Переходимо в каталог /usr/.src/linux і запустите на виконання команду

# make config

По цій команді почнеться дійсний допит про те, яким саме ви хочете бачити створюване ядро.

Таблиця 1. Деякі параметри настроювання ядра

ПараметрОпис
Code Maturity LevelПризначений для використання експериментальних компонентів у ядрі
Processor type and featuresВизначає тип процесора
Loadable Module SupportНеобхідний при використанні модульного ядра замість єдиного
General SetupСерія загальних питань, наприклад про наявність чи співпроцесора підтримці РСI BIOS
Block DevicesСерія питань про типи IDE-дисків і інших пристроїв уведення-висновку
Networking OptionПитання про підтримку мережних можливостей, наприклад IP- маскирования чи брандмауерів
SCSI SupportПідтримка SCSI -контролерів
SCSI Low-Level SupportНизкоуровневая підтримка SCSI-контролерів
Network device supportПідтримка різних мережних контролерів і процесів
Ethernet (10 or 100 Mbit)Підтримка мережних з'єднань 10 base і 100base
ISDN subsystemПідтримка integrated Sеrvices Digital Network (ISDN)
CD-ROM drivers {not for SCSI or IDE/АЇАРІ drivers)Підтримка різних типів нагромаджувачів CD-ROM
Character DevicesПідтримка різних символьних пристроїв
MiceПідтримка різні вказівки
ftapeПідтримка стрічкових нагромадите лею й інші типи знімних пристроїв
FilesystemsНастроювання підтримки різних файлових систем, а також кодових сторінок DOS
Network Filesystems (NFS)Підтримка NFS
SoundПідтримка різних звукових карт
Additional low level sound driversПідтримка низкоуровневых специфічних драйверів звукових карт
Kernel HackingПідтримка профілювання ядра

Настроювання за допомогою меню

Більш приємний користувальницький інтерфейс у текстовому режимі забезпечує виклик наступної команди (з каталогу /usr/src/linux):

# make menuconfig

При цьому для настроювання тих же параметрів, що й у випадку командного рядка, вам буде запропонована система меню. Основне її достоїнство складається в том. що вам не треба проходити по всіх параметрах настроювання ядра — можна змінити тільки ті параметри, які необхідно. У випадку ж командного рядка ви будете змушені пройти весь шлях від першого кроку до останнього.

Настроювання ядра за допомогою Х-программы

Якщо ви установили Х Windows, то замість описаної в попередньому розділі команди можете скористатися командою

# make xconfig

Достоїнство цього меню наявність кнопки Help, щиглик на який приводить до появи діалогового вікна з поясненнями, що означає той чи інший параметр.

Закінчивши вносити зміни, клацніть на кнопці Save and Exit для їхнього збереження і виходу з програми.

Компіляція нового ядра

Тепер, коли настроювання виконане, можна приступати до компіляції ядра за допомогою команд

make dep

make zImage

Коли компіляція буде довершена, вам залишиться тільки настроїти систему на використання нового ядра при завантаженні. Нове ядро зберігається у файлі /usr/src/linux/arch/і386/boot/zImage, і його необхідно скопіювати в завантажувальний каталог /boot (але перед цим не забудьте зробити резервну копію наявного ядра, наприклад використовувавши команду mv /boot/vmlinuz /boot/vmlinuz.old). Копіюється знову створене ядро за допомогою команди

ср /usr/src/linux/arch/1386/boot/zImage /boot/vmlinuz

Ви можете змінити завантаження Linux таким чином, що одержите можливість завантаження системи як з новим, так і зі старим ядром. Для цього ви повинні відредагувати файл /etc/lilo.conf, додавши в нього новий запис. Приклад такої зміни файлу приведений у листинге, у якому додається запис про старе ядро під позначкою old для завантаження старого ядра.

Листинг 1. Приклад файлу /etc/lilo.conf

boot=/dev/had

maps/boot/map

install=/boot/boot,b

prompt

timeout=50

image=/boot/vmlinuz

label=linux

іnіtrd=/boot/іnіtrd

root=/dev/hdal

read-only

image=/boot/vmlinuz.old

label=old

root-/dev/hdal

read-only

Після змін у конфігураційному файлі скористайтеся для відновлення L1LO командою

/sbin/lilo -v

Тепер після перезавантаження у вас буде 50 секунд для можливості вибрати завантаження Linux зі старим ядром.

Приклад побудови модульного ядра

Тепер же ви можете завантажувати модулі підтримки того чи іншого апаратного чи забезпечення драйвера пристроїв тільки при необхідності. Для того щоб побачити список використовуваних у даний момент модулів, скористайтеся командою lsmod.

Модульні ядра підтримуються тільки версіями Red Hat Linux/Intel і Red Hat Linux/SPARC. Користувачі Red Hat/Alpha змушені будувати монолітні ядра.

Для побудови модулів знаходячись у каталозі /usr/src/linux, скористайтеся командами

Make modules

make modules-install

Робота з модулями ядра

Тепер, після компіляції й інсталяції модулів, ви готові розширити можливості свого ядра за допомогою модулів, що завантажуються. У табл.14.2. перераховані основні доступні команди роботи з модулями ядра.

Таблиця 14.2. Команди роботи з модулями
КомандаОпис
lsmod Виводить список завантажених у даний момент модулів
insmod Уставляє визначений модуль у ядро
rmmod Видаляє визначений модуль з ядра
depmod Створює файл залежностей для команду modprobe
modprobe Завантажує модулі зі списку, сгенерированного командою depmod

Якщо ви працюєте з Х Windows, до ваших послуг простий і інтуїтивно зрозумілий інтерфейс роботи з модулями, наданий демоном kerneld з Control Panel (мал.14.5.)

Клацніть на кнопці Kernel Configurator. З'явитися однойменне діалогове вікно (мал. 14.6.)

За допомогою кнопки Add можна додати модуль до ядра, а за допомогою кнопки Remove – видалити. Вікно, що з'являється при щиглику на кнопці Add.

Перезапуск kerneld

Зміни зроблені за допомогою Kernel Daemon Configurator, зберігаються у файлі /etc/conf.modules, до якого kerneld звертається при запуску.

Для перезапуску kerneld можна скористатися кнопкою Restart Kerneld у вікні Kernel Configurator чи зробити це командного рядка за допомогою команд

/etc/rc.d/init.d/kerneld stop

/etc/rc.d/init.d/kerneld start

Перезапуск не приводить до завантаження використовуваних у даний момент модулів, однак kerneld буде застосовувати збережену конфігурацію при запуску модулів у майбутньому.

У 1968 році компанія IBM запропонувала своїм клієнтам систему керування інформацією (IMS). Це була одна з перших спроб досягти хоча б деяких цілей підходу на основі баз даних до керування файлами й один з перших прикладів СУБД. У IMS база даних була концептуально представлена у виді ієрархії. Запису були організовані в набори, що зв'язувалися один з одним зв'язками володіння (ownership).

Ієрархічні бази даних підходять для тих інформаційних систем, що природним образом ґрунтуються на ієрархічній моделі. Істотним високопродуктивних великих систем, побудованих на основі IMS. Однак більшість систем неможливо реалізувати у виді IMS так, щоб уникнути великої кількості повторень даних.

У мережній моделі маються дві основні конструкції: запису і зв'язки. Зв'язок являє собою набір фізичних покажчиків, що задають відношення володіння між наборами записів. Так, можна сказати, що клієнт «володіє» набором замовлень, а деяке замовлення «володіє» набором елементів запасів (як і в ієрархічній моделі). Але в мережній моделі немає обмеження, що вимагає, щоб володіння задавалося тільки в одному напрямку, і набір записів може брати участь у довільному числі зв'язків володіння.

Використовуючи мережний підхід, можна шляхом ретельного аналізу даних усунути надмірність, і файли системи дійсно стануть інтегрованими. Але ця інтеграція досягається за рахунок складності. Мережні бази даних характеризуються великою кількістю наборів записів, кожний з який містить небагато інформації і багато покажчиків на інші безлічі записів. Навіть написання найпростіших запитів може зажадати складної навігації від одного набору записів до іншого.

У реляционной моделі дані на концептуальному рівні представляються у виді таблиць, що складаються з рядків і стовпців. Строго говорячи, таблиці називаються відносинами, рядка – кортежами, а стовпці – атрибутами. Кортежі практично еквівалентні тому, що звичайно розуміється під записом файлу, а атрибути відбивають зміст значень кожного кортежу.

У реляционной базі даних зв'язування даних різних таблиць один з одним здійснюється не за допомогою явних покажчиків (як у мережній базі даних), а за допомогою значень атрибутів.

У реляционной базі даних можна задавати зв'язку між будь-якими двома атрибутами, що мають порівнянні значення даних. Атрибут одного відношення, що складає винятково з числових значень, можна зв'язати з будь-яким атрибутом будь-якого іншого відношення, що складає також винятково з чисел. Таким чином, завдання логічних зв'язків між відносинами не становить труднощі.

Описані вище так називані класичні підходи до реалізації СУБД найчастіше зазнають критики за те, що усі вони ґрунтуються на ідеї пасивної безлічі даних. У них немає засобів, що дозволяють моделювати реальне поводження даних. Крім того, семантичні можливості також дуже обмежені, тому важко представляти дійсний зміст даних.

Объективно-ориентированная технологія намагається перебороти ці обмеження. Схема объективно-ориентированной бази даних складається з колекції класів. Клас є колекцією об'єктів, причому структура і поводження об'єктів одного класу однакові. Видима структура об'єкта визначається властивостями його класу. Так у нашій гіпотетичній базі даних клієнт буде мати такі властивості, як номер, ім'я, адреса, статус і ін. Поводження об'єкта задається за допомогою методів його класу. Метод – це, по суті, деяка операція, яку можна застосувати до об'єкта. Він представляє те, що, по-нашому думки, повинний робити об'єкт. Наприклад, клієнт може створювати замовлення, оплачувати рахунок і т.д., отже, необхідні методи для кожного з цих видів діяльності.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно