Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Dim sh As Single, sw As Single



'i – Сағат/Қоңырау функциялар арасында есептеуден өту

'f –Қоңырау функциясындағы тапсырманың жалаушасын есептеу басы

'sh, sw – жұмыстан кейінгі орнату режимінде қалпына келтіру үшін клиент формасындағы ПЭУ өлшемдерінің сақталуы

't_txtInt –Қоңырау үшін берілген интервалдың өлшемі

Const C_height = 1596 'UserControl жобаланған биіктік

Const C_width = 3324 ‘UserControl жобаланған ен

Const C_koef = 41 / 79.8 ‘ Биіктік шрифтіне қатысты коэффициент ПЭУ Clock уақытының көрсетілуі және ПЭУ-дің өзі

Const С_interv = 100 ' tmrSec таймер интервалы

l Функцияны өңдеу

Функцияны өңдеу ПЭУ-дің (UserControl элементі) “беттік” жағынан “сыртқы ”(SSTab элементі) жағына көшу үшін екі рет шерту керек.

Private Sub UserControl_DblClick() 'ПЭУ-дің өлшемін есте сақтайық

sh = UserControl.Height

sw = UserControl.Width

'ПЭУ “изнанки” жобалық өлшемін орнатамыз

UserControl.Height = C_height

UserControl.Width = C_width

SSTab1.Visible = True

txtInt.Visible = True

cmdStart.Visible = True

cmdStop.Visible = True

cmdCheck.Visible = True

lblTime_1.Visible = True

Label3.Visible = True

Label4.Visible = True

optType(0).Visible = True

optType(1).Visible = True

End Sub

Private Sub SSTab1_DblClick()

SSTab1.Visible = False

' ПЭУ-дің түпкі өлшеміне келеміз

UserControl.Height = sh

UserControl.Width = sw

End Sub

Батырмаға басу арқылы өңдеу(сәйкес әдістер):

Private Sub cmdCheck_Click()

If i Mod 2 = 0 Then 'Функция будильника

cmdCheck.Caption = "В режим часов"

cmdStart.Enabled = True

optType(0).Enabled = True

optType(1).Enabled = True

f = 0

If optType(0).Value = True Then

tmrSec.Interval = 0

lblTime.Caption = "00:00:00"

lblTime_1.Caption = "00:00:00"

End If

Else 'Функция часов

cmdCheck.Caption = "В режим будильника"

cmdStart.Enabled = False: optType(0).Enabled = False

optType(1).Enabled = False

tmrSec.Interval = С_interv

End If

i = i + 1

End Sub

Private Sub cmdStart_Click()

cmdStart.Enabled = False

cmdCheck.Enabled = False

cmdStop.Enabled = True

t_txtInt = CDate(txtInt.Text)

tmrSec.Interval = С_interv ‘Таймерді қосамыз

End Sub

Private Sub cmdStop_Click()

cmdStart.Enabled = True

cmdCheck.Enabled = True

cmdStop.Enabled = False

End Sub

Public Function Start() As Variant

Call cmdStart_Click

End Function

Public Function Check() As Variant

Call cmdCheck_Click

End Function

Public Function Stopp() As Variant

Call cmdStop_Click

End Function

 

26 Объект және кластарды сипаттау. Конструктор және деструктор. Класс элементтеріне қол жетімділікті басқару сұрақтары.

 

l Класстарды сипаттау

l Класстарды сипаттау

UML нотациясында класс үш бөлікке бөлінген тіктөртбұрыш түрінде белгіленеді. Жоғарғы жағында класс аты, ортасында атрибуттары(берілгендер өрісі) бар. Төменгі бөлігінде оның тәртібін(яғни, класспен орындалатын қимылын) көрсететін кластар әдістемесі көрсетіледі.

l Класстарды сипаттау

Кластарды жалпы жағдайда сипаттау мынандай түрде болады:

§ Барлық проектіге қосылған .VBP кеңейткішінен тұратын өздік проект файлын құрайды. Экрандық форма файлдары .FRM кеңейткішінен, модульдер(визуальды қолданба құруға жауап бермейтін бөлек сақталған текстік ішкі бағдарламалар) .BAS кеңейткішінен тұрады.

§ Біздің мысалды жобаның жол басшы терезесі Project1.vbp проект файлын және екі форма файлы Form1.frm және Form2.frm – ді көрсетеді. Жобаға әр форма үшін 2-лік берілгендермен бір .FRX кеңейткішті файлдан кіруі мүмкін. Қасиеттерді сақтауға, бейнелерді көрсететін (Picture) және белгілер(Icon). Сонымен қатар проектіде модульдер класы файлы (.CLS), ActiveX(.OCX) стандартты басқару элементі және бір ресурстар файлы болуы мүмкін.

§ Объек күйі – берілген объектінің өзгермейтін барлық қасиеттерінің тізімінен және сол қасиеттердің әрбіреуінің қазіргі мәнімен суреттеледі. Кез – келген объектінің қасиеті болатындығы, кез – келген объектінің белгілі бір кеңістікте орын алатындығын білдіреді(компьютер жадында немесе физикалық).

§ Қасиеттер санына өз күйін сақтауға көмектесетін объектінің өзіне тән немесе өздері иемденген мінездемелер, сапа мен мүмкіндіктер жатады. Бұл қасиеттер атрибуттар класы деп аталады.

 

Класстарды сипаттау

§ Атрибуттар кластар ішінде болғандықтан, олар басқа кластардан жасырын. Осыған байланысты кей жағдайларда қандай кластардың атрибуттарды оқуға және өзгертуге құқы бар екендігін көрсету керек. Бұл атрибуттың көрінушілігі деп аталады.

§ Атрибуттар мен операцияларды олардың қатынау талаптары мен тағайындалу тәуелділігіне байланысты, осы параметрдің келесі мәндерін төмендегі түрде анықтайды.

§ Private(жабық) Мұндай атрибут жолдастық кластан басқаларына көрінбейді. Жабық атрибут “-” таңбасымен беріледі.

§ Олардың орналасу секциясына Public(ашық) Бұл бөлімде кластарға тиесілі атрибуттарды орналастырады. Оларды кез –келген класс мәнімен көруге және өзгертуге болады.UML нотациясында бұл атрибут “+” белгісімен көрсетіледі.

§ Олардың орналасу ретіне қарамастан, бірнеше private және public секцияларын беруге болады.

§ Класс элементтерінің көрінушілігін class кілттік сөзі арқылы басқаруға болады. Егер класты сипаттау кезінде struct сөзі қолданылса, онда барлық өрістер мен әдістер үнсіздік бойынша жалпы тиесілі ортақ қол жетімді (public). Ал егер класты сипаттау кезінде class сөзі қолданылса, онда үнсіздік бойынша барлық кластық әдістер мен өрістер жасырынған (private) болады.

Кластарды сипаттау

Атрибуттар класының қасиеттері:

§ Осы класс типінен басқа,кез –келгек типті болуы мүмкін (бірақ осы кластың көрсеткіші бола алады);

§ Const модификаторы арқылы сипатталуына болады, бірақ олар бір рет қана иницизацияланады және өзгеруіне болмайды;

§ Сипаттау кезінде атрибуттар инициялизациясына жол берілмейді;

§ Егер әдіс денесі клас ішінде анықталған болса, ол біте құралған(online). Ереже бойынша қысқа әдістерді біте құрылғандармен жасайды. Егер класс ішінде жариялау әдісі ғана жазылған болса, онда сол әдіс көрінушілік облысына қатынау операцияларының көмегімен бағдарламаның басқа жерінде анықталуы керек

l Кластарды сипаттау(объектілі айнымалылар)

§ Объектілік айнымалыларды жариялау екі негізгі формадан тұрады. Осы формалардың бірінде, мысалы

§ Dim Var AS Object

типті кез –келген объектіге сілтейтін “жалпы” Оbject типті объектілік айнымалы жарияланады.

Екінші формада, мысалы

§ Dim ObjVar As Word.Selection

типті объектіге ғана сілтене алатын белгілі объект класының объектілік айнымалысы жарияланады.

§ Мұндай жариялау нұсқасы мынандай жағдайда жағымды болып табылады. Біріншіден компилятор айнымалының класпен байланысын клиенттің қолданба кодын жазу кезінде-ақ байқайды және бағдарламалаушыға ListMembers (Айнымалы атынан кейінгі новигациялық нүктелерді енгізуге берілетін объект мүшелерінің тізімінің жауабы) сервисімен қамтамасыз етеді. Екіншіден компилятор мынандай жағдайда клиенттің объектімен ерте байланысын қолданады (жай кездегі орындалудай емес, компиляция кезінде)

l Кластарды сипаттау

Бағдарламаның(OLE-сервер) объектілі компонентті экземплярын, жасау алдын ала жарияланған объектілі типті (жалпы,немесе сол кластың өзі) айнымалымен және клиентке орнатылған сілтемемен бірге жасалады. Объект-серверге (жасалған және бар) орнатылған сілтеме Set инструкциясымен орнатылады, сондықтан серверді экземплярды жасаудың 3 нұсқасы да осы варианттардың нұсқалары болып табылады.

Объектіні жасауда (мысалы, Selection) бірінші нұсқа CreateObject функциясын қолданады:

Set objVar = CreateObject(“Word.Selection”)

Екінші нұсқа New кілттік сөзін қолданады:

Set objVar = New Word.Selection

Осындай түрмен серверлік емес объектілерді жасауға болады.

Үшінші нұсқа бірінші аргументтің мәні ретінде бос жолды GetObject функциясын шақырады, ол екінші аргумент класымен(әйтпесе, екінші аргументі болмаса, объект берілген файлдың ассоцирленген кеңейткіші болып табылады ) анықталған файлды спецификациялау керек:

Set objVar = GetObject(“”, "Word.Selection")

(Егер бірінші аргумент түсірілген болса, онда қолданбада орнатылатын Word қолданбасында бар объектіге берілген инструкция сілтеме орнатады, әйтпесе соңғысы болмағанда қатені генерациялаған еді.) OLE-автоматизацияның типі Word қолданбасындағы сияқты серверлік емес екендігін ескерсек, онда клиенте объектілерді жасау ашық ( орындауға жіберілген) болу керек.

l Кластарды сипаттау

Объектілі-бағытталаған бағдарламалау стилі объектіге қатысты хабарламаларды беру жолымен байланысты (яғни,класс объектісінде сипатталған әдістерге қатынау). Объектіге жасалған операциялар, осы объектінің кейбір реакцияларын тудырады. Операция – класс өзінің клиенттеріне ұсына алатын қызмет. Практикада объектілермен 5 түрлі операциялар орындауға болады:

§ Объектілер бір-бірімен хабарламалар жіберумен, алумен әсерлеседі.

§ Хабарлама дегеніміз қажетті параметрлерден тұратын, қимылдарды орындауға сұраныс. Хабарламаның механизмі сәйкес функцияларды шақырумен қалыптасады.

§ ОББ көмегімен оқиға-басқару моделі қалыптасады, мұнда берілгендер активті және бағдарламалық кодтың фрагментін шақырумен басқарылады.

§ Реализацияның оқиға-басқару моделі ретінде менюдің көмегімен басқарылатын кез келген бағдарлама қызмет етеді. Бағдарламаны іске қосқаннан кейін ол баяу түрде қолданушының қимылын күтеді. Кодтармен мәліметтерді басқарған кезде: бағдарлама старттан кейін қолданушыға кейбір іс-қимылдарды(мәліметтерді енгізу,режим таңдау) қатал түрде берілген алгоритмге сәйкес орындауына ұсыныс жасайды. Осы кезде оқиғалы үлгі дәстүрліге (директивалы) қарама-қарсы болып есептеледі.

l Объектілер мен класстар арасындағы байланыс

§ Кез келген объект арасындағы қатынастар біреуінің екіншісіне қарағандағы алдын-ала айтылатын болжамдарға негізделеді:объект үстіне орындауға жене күтілген іс-әрекетінің операцияларын жатқызуға болады.

§ Егер объект өзінің ресурстарын басқа объектілерге ұсына алса, онда сервер деп аталады, ал егер оны қолданса – клиент деп аталады.

§ Байланыс – бұл объект-клиент объект-серверден қызмет сұрайтын немесе бір объект басқа объектіге жол жабатын спецификалық(арнайы) сәйкестендіру.

§ Объект – басқа бір объектіге қарағанда, сервер және басқаларға қарағанда клиент бола алады.

l Объектілер мен класстар арасындағы байланыс

§ Объектінің іс-жағдайы оның басқа объектілерге қызмет көрсету және қалған объектілерге операцияларды орындау негізінде құрылады.

§ Оъектінің сыртқы көрінісін басқа объектілермен қарым-қатынасы жағынан қарастыруға болады және осының салдарынан оның ішкі құрылғылары да орындалады.Осы қарым-қатынаспен көрсетілген әр операция оның формальді параметрі мен мәнінің қайтаратын типін анықтайды.

§ Клиенттің басқа объектілерге қолдана алатын толық операциялар жиыны мен осы операцияларды шақырылатын дұрыс реті – протокол деп аталады.

l Объектілер мен класстар арасындағы байланыс

§ Байланыс класқа басқа кластың атрибуттары, операциялары және байланыстары туралыбілуге мүмкіндік береді. UML тілінің натоциясында кластар арасындағы қарым-қатынас оларды байланыстыратын түзулер арқылы көрсетіледі.

§ Объектілер арасында келесідей қатынастың түрлері болады:

§ Ассоциация – бұл бағыты болмайтын және кластар бір-бірімен қалай қатынайтынын түсіндірмейтін мәндік байланыс. Дегенмен талдаудың алғашқы кезеңі де осыны талап етеді, сондықтан біз қатысушыларды және лоардың маңызы мен қатынастарының күштілігін тек фиксирлейміз. UML диаграммасында бұл байланысты кластарды қосатын қарапайым түзулер көрсетеді.

l Объектілер мен класстар арасындағы байланыс

§ Ассоциация класс қатынастарының жалпы және анықталмаған түрі болып табылады. Көп жағдайда аналитик өз алдымен ассоциацияның бар жоғын пайымдағаннан соң объектіні нақтылай келе, оны бір арнайы байланыс түріне айналдырады.

§ Ассоцияция екі бағытта немесе бір бағытты болуы мүмкін. UML тілінде екі бағытты ассоцияцияны бағыттауышсыз немесе екі жақты бағыттауышсыз жай түзумен салады. Бір бағытты ассоциясияның бағытын Объектілер мен класстар арасындағы байланыс

§ Агрегация бүтін және сәйкес объектілер иерархиясына әкелетін бөлік арасындағы қатынасты сипаттайды, сонмен, бүтіннен(агрегат) бөлікке (атрибуттар) келе аламыз. Бұл мағынада агрегация – ассоцияцияның арнайы меншік жағдайы.

§ Басқа объектілердің(агрегат) атрибуты болатын объект өзінің агрегатымен байланыс жасайды. Осы байланыс арқылы агрегат хабарлама жібере алады (“Қолдануды” көріңіз). Агрегацияны бүтін болатын класта ромбигі бар түзу түрінде көрсетеді

l Объектілер мен класстар арасындағы байланыс

Агрегацияның жоғарыда келтірілген нұсқасын (боялмаған ромбикпен бірге) сілтеме бойынша агрегация деп атайды.

UML-дың қарапайым агрегациясына қосымша түрде агрегацияның әлдеқайда мықты түрін енгізеді. Оны композиция немесе мән бойынша агрегация деп атайды. Композицияға сүйене отырып, объект-бөлік тек бір бүтінге жатқызылуы мүмкін және бөліктің өмірлік циклі бүтіндік циклімен сәйкес келеді: олар бірге өмір сүреді және бірге өледі. Кез келген бүтіндік жою бөліктеріне де жайылады. Агрегацияның мұндай түрін бүтін жағына болған ромбик көмегімен көрсетеді.

Кластар арасындағы агрегация қатынасы олардың экземпляры арасындағы агрегация қатынасына тікелей байланысты болады. Сілтеме бойынша агрегация класқа атрибут – нұсқағыш агрегатының немесе класпен байланысты экземплярға атрибут – сілтеменің қосылғанын білдіреді. Мұндай кезде бүтінді агрегат жою оның бөліктерін жоюға әкеп соқпайды және бұл бөліктер әр түрлі объектілерге жатуы мүмкін. Мән бойынша агрегация агрегат класына тікелей объект – бөліктің қосылуын болжайды.

 

27 Бірлік және көптік мұралау концепциялары. Туынды кластарды ашу және жабу.

l Мұрагерлік

§ Мұрагерлік –бұл бір кластың жеке жағдайда немесе толығымен басқа бір кластың (бір түрлі мұрагерлік) немесе басқа кластардың (көп түрлі мұрагерлік) құрылымы мен іс-әрекетін қайталайтын кластар арасындағы қатынас. Мұрагерлік кластар арасында “жалпының жекеге” иерархиясын қояды.

§ Мұрагерлік байланыстарын жалпыланған (generalization) деп те атайды және ұрпақ - кластан аталық-класқа бағытталатын үлкен ақ бағыттауыш түрінде бейнелейді.

Бірлік мұралау

Мұрагерлік басталған класс базалық немесе әкелік деп аталады. Базалық кластан шыққан класстар ұрпақтар немесе туынды класстар деп аталады. Кейбір тілдерде абстрактілі кластар қолданылады. Абстрактілі класс- бұл бағдарламада жазылған, өрісі, тәсілі бар, объектіні құруға қолдануға болмайтын кем дегенде бір абстрактілі әдісі бар класс. Яғни абстрактілі класстан тек мұрагерлікпен алуға болады. Объектілер абстарктілі кластан мұрагерлікпен алынған туынды класстар негізінде құрылады.

Көптік мұралау

Көптік мұралауда класста әкелік саны 1-де көп болуы мүмкін. Бұл жағдайда класс барлық әкелердің әдістерін мұралайды. Осындай әдістің артықшылығы болып ыңғайлылықтың болуы табылады. Көптік мұралу С++, Питон, Эйфель, UML тілдерінде жүзеге асырылады. Көптік мұралауда әкелердің әдістерінің атаулары бірдей болғанда қиындықттар тууы мүмкін. Оны шешу үшін көруді кеңейту «::» операциясын қолданып әкелігін және әдістің нақты атын көру қолданылады.

Visual Basic

Наследование в Visual Basic:

Class A 'базовый классEnd Class Class B : Inherits A 'наследование от AEnd Class Noninheritable Class C 'Класс, который нельзя наследовать (final в Java)End Class MustInherit Class Z 'Класс, который обязательно наследовать (абстрактный класс)End Class

[править]C++

Наследование в C++:

class A{ //базовый класс}; class B : public A{ //public наследование}; class C : protected A{ //protected наследование}; class Z : private A{ //private наследование};

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.