Поняття об’єкту та його властивостей і методу



Цикли, розгалуження, функції - усе це елементи так званого структурного програмування. Для написання невеликих програм можливостей структурного програмування зазвичай достатньо. Однак великі проекти, роботу над якими ведуть групи людей, набагато раціональніше виконувати використовуючи парадигму об'єктно-орієнтованого програмування. Чому? Це ми з'ясуємо пізніше. ООП - абревіатура (скорочена назва) об'єктно-орієнтованого програмування.
Отже, що ж таке ООП? Судячи з назви, ключову роль в цій парадигмі грає якийсь об'єкт, а точніше безліч об'єктів. Реальний світ складається з об'єктів і їхніх взаємодій між собою. В результаті взаємодій об'єкти можуть змінюватися самі або змінювати інші об'єкти. Тому, можна сказати, що ООП є більш природним в якомусь сенсі.
У світі можна умовно виділяти різні системи, що реалізують певні цілі (змінюються з одного стану в інший). Наприклад, група на занятті. Це система, що складається з таких об'єктів як діти, учитель, столи, комп'ютери, проектор тощо. В цієї системи можна виділити основну мету - збільшення частки знань дітей на якусь величину. Щоб досягнути мети, об'єкти системи повинні певним чином взаємодіяти між собою.
Що таке клас або тип? У реальному світі стіл - це об'єкт. Коли його виготовляють, керуються певним описом (знанням), що таке стіл. Я можу сказати «стіл», не маючи на увазі ніякого конкретного столу, але більшість зрозуміють, про що йде мова, оскільки знають особливості цього предмета (кришка, чотири ніжки тощо).
Клас - це опис об'єктів певного типу. На основі класів створюються об'єкти конкретні представники певного класуМоже бути безліч об'єктів, що належать одному класу.
Приклад, маємо клас «СТІЛ», а конкретний вчительський стіл у кабінеті №30, будемо називати його «стіл30» - це об'єкт класу «СТІЛ». У об'єкту класу «стіл» є властивості:
«матеріал», значення цієї властивості для об'єкту «стіл30» - дерево,
«висота», значення цієї властивості для «стіл30» - 90 (значення подається у сантиметрах, бо так описано в класі «СТІЛ»),
«колір», значення для «стіл30» - коричневий тощо.
Дерево, 90, коричневий - це значення різних властивостей об'єкту «стіл30» класу «СТІЛ».
Ще одним поняттям ООП є метод. Метод - засіб зміни властивості об'єкту. Наприклад, метод «пофарбувати червоним» застосовується до об'єкту «стіл30», при цьому змінюється його властивість «колір» на червоний. Метод застосовується до конкретного об'єкту, тобто конкретний «стіл30» стає червоним, а не всі столи, що належать до класу «СТІЛ».

За зміну властивостей об’єкта відповідає метод config()
root.config(background='steelblue', relief=RAISED, borderwidth=10)
Розглянемо можливі параметри вікна. Почнемо зі знайомих
height, width - розміри вікна
background(bg) - колір фону вікна
Але є і інші параметри, наприклад,
relief - вид рамки вікна. Може приймати значення
Ширину рамки можна також задати, для цього використовуємо borderwidth. По замовчуванню цей параметр дорівнює 0.
root.title('My favourite title')
root.mainloop()
Наприклад,
from Tkinter import *
root=Tk()
root.config(width=600, height=400, background='steelblue', borderwidth=10, relief=RAISED)
root.title('My favourite title')
root.mainloop()

Виявляється, існують параметри, які дозволяють це змінити параметри тексту.
label = Label(root, text="Hello, world!", fg="red", font="Times")
label.pack()

Ви вже здогадалися, що параметр fg задає колір тексту, а параметр font задає тип шрифту.
Якщо font прийме значення Ariel, то текст у вікні буде виглядати так:
Програма в цілому буде виглядати так:
from Tkinter import*
root = Tk()
root.title('My favourite title')
label = Label(root, text="Hello, world!", fg="red", font="Ariel")
label.pack()
root.mainloop()
При зміні розмірів вікна за допомогою миші відбувається наступне:
Для того, щоб текст розташовувався у всьому доступному просторі вікна можна використати опцію expand зі значенням 1 для метода pack. Створимо ще один текст у вікні:
from Tkinter import *
root=Tk()
label=Label(root, text='Hello, world!', fg='red', font='Ariel')
label.pack()
label2=Label(root, text='My name is Ivan', fg='blue', font='Times')
label2.pack(expand=1)
root.title('My favourite title')
root.mainloop()
Після запуску отримаємо вікно:
Але при зміні розмірів вікна текст My name is Ivan буде займати положення посередині доступного простору (доступний простір визначається розмірами вікна після розміщення першого тексту):
            Якщо і до тексту Hello, world! застосувати опцію expand=1, то отримаємо:
У бібліотеці Tkinter передбачені такі параметри (змінювати розмір тексту, робити його напівжирним, курсивом, підкресленим):
label2 = Label(root, text='My name is Ivan', fg='blue',
               font=('Comic Sans', 25, 'bold italic underline'),
               bg='green', width=20, height=10, relief=RAISED, bd=8)
Розглянемо по частинах:
fg='blue'   - задає колір тексту;
font=('Comic Sans', 25, 'bold italic underline')   -  параметри текста, а саме: Шрифт - Comic Sans, розмір - 25, bold - напівжирний, italic - курсив, underline - підкреслений;
bg='green'  -  колір фону мітки;
width=20, height=10 - відповідно ширину і довжину, але не у пікселях, а у символах;
relief=RAISED, bd=8  - вже знайомі тип і товщина рамки.
Остаточно отримуємо програму
from Tkinter import*
root = Tk()
root.title('My favourite title')
label1 = Label(root, text='Hello, world!')
label1.pack()
label2 = Label(root, text='My name is Ivan', fg='blue',
               font=('Comic Sans', 25, 'bold italic underline'),
               bg='green', width=20, height=10, relief=RAISED, bd=8)
label2.pack()
root.mainloop()

Комментариев нет:

Отправить комментарий