Point нысанының мәнін қайтаратын әдіс



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 22 бет
Таңдаулыға:   
Мирас университеті

Университет Мирас

ІТ және телекоммуникациялар

секторы

Сектор

ІТ и телекоммуникации

КУРСТЫҚ ЖҰМЫС (ЖОБА)
КУРСОВАЯ РАБОТА (ПРОЕКТ)

Курстық жұмыс (жоба) тақырыбы
Тема курсовой работы (проекта) WEB технологиясы және компьютерлік модельдеу

ПәнДисциплина JavaScript сценарий тілі

СтудентСтудент
Асқарұлы Нурбек

[(]студенттің Аты-жөні[Ф.И.О. студента)]

IT-911к-1

[(]топ[группа)]

6B06103

IT технологиялар және бағдарламалау

[(]шифр[шифр)]
[(]БББ атауы[наименованиеОП)]

Курстық жұмыс (жоба)
Курсовая работа (проект) защищен на

қорғалды

[(]бағасы[оценка)]

Жетекші
Руководитель

[(]қолы[подпись)]

[(]Аты-жөні[Ф.И.О.)]

жг

Шымкент 2022 ж.г.
НОРМАТИВТІК СІЛТЕМЕЛЕР, АНЫҚТАМАЛАР, БЕЛГІЛЕР ЖӘНЕ ҚЫСҚАРТУЛАР

Сұраныс дегеніміз: 1) деректер алынатын бағандар мен кестелерді; 2) таңдау бойынша деректер қанағаттандыруға тиіс шарттар; 3) таңдау бойынша, алынған баған мәндері бойынша орындалатын есептеулер; және 4) таңдау бойынша нәтижелер жиынының қажетті реті.
Деректер базасының данасы - бұл басқа мәліметтер базасымен бірдей схеманы қолданатын тәуелсіз мәліметтер базасы. Тек RDM-де қолданылады.
DDL-мәліметтер базасын анықтау тілі.Кросс-компилятор-бұл объект кодын жасайтын платформадан басқа платформада жұмыс істейтін компилятор. Көбінесе хост процессорлары мен мақсатты платформаның архитектурасы Отбасы әр түрлі болады.
Курсор-шарлауға және жаңартуға болатын жалпы критерийлер бойынша топтастырылған жолдар жиынтығы (пернелер тізбегі, жиынтық мүшелігі, таңдау нәтижелері жиынтығы).
Деректер түрі-бағанда сақталуы мүмкін деректердің негізгі түрі. RDM SQL-де келесі деректер түрлері бар: char , wchar , varchar , wvarchar , binary , varbinary , boolean , tinyint , smallint , integer , bigint , real , float , double , date , time , timestamp , long varbinary, long varchar. , және ұзын wvarchar .
IEC - Халықаралық электротехникалық комиссия. ISO-мен бірге IEC SQL стандартын (ISOIEC 9075) және көптеген басқаларды басқарады.
IIOT - заттардың өнеркәсіптік интернетінің аббревиатурасы.
RDM сервері - 1993 жылы шығарылған Raima клиентісервері ДҚБЖ RDS (Raima Database Server), Velocis және соңында RDM Server деп аталды. Бұрыннан бар тұтынушылар үшін әлі де қолдау көрсетіледі.
Протокол - желідегі компьютерлер арасында хабарламаларды құрастыру, пішімдеу және жіберудің арнайы әдісі. Интернет хабарламалары TCPIP протоколы арқылы компьютерлер арасында беріледі.

МАЗМҰНЫ

КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4

1 Теоретическая часть ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ...
5
1.1 Объектіге бағытталған бағдарламалауға шолу ... ... ... ... ... ... ..
5
1.2 Класстар, конструкторлар және класс синтаксисі ... ... ... ... ... ...
7

2 Практикалық бөлім ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ...
14
2.1 Статикалық әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
14
2.2 Қарапайым мәндер нысандары ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ..
11

ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
21
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ ... ... ... ... ... ... ... . ... ...
22

КІРІСПЕ

Дәстүрлі түрде компьютерлік модельдеу тек имитациялық модельдеу деп түсінілді. Дегенмен, модельдеудің басқа түрлерінде компьютер өте пайдалы болуы мүмкін, мүмкін физикалық модельдеуді қоспағанда, компьютер шын мәнінде де пайдаланылуы мүмкін, бірақ модельдеу процесін басқару мақсатында. Мысалы, математикалық модельдеуде негізгі кезеңдердің бірін - эксперименттік деректер негізінде математикалық модельдерді құруды жүзеге асыру қазіргі уақытта компьютерсіз жай ғана елестету мүмкін емес. Соңғы жылдары графикалық интерфейс пен графикалық пакеттердің дамуының арқасында компьютерлік, құрылымдық және функционалдық модельдеу кеңінен қолданыла бастады, ал компьютерді қолдану тіпті концептуалды модельдеуде де басталды, ол жерде, мысалы, құрылыста қолданылады. жасанды интеллект жүйелері.
Олай болса, компьютерлік модельдеу ұғымы дәстүрлі компьютерлік модельдеу ұғымынан әлдеқайда кең және бүгінгі күннің шындығын ескере отырып, нақтылауды қажет ететіні анық.
1 Теориялық бөлім

1.1 Объектіге бағытталған бағдарламалауға шолу

Сіз нысандарды біраз уақыттан бері пайдаланып жүрсіз. Нысандар браузердің құжат нысанының үлгісінен (DOM) алынды. DOM веб-бет құжатының барлық бөліктерін түйін ағашындағы түйіндер ретінде модельдейді. Мысалы, келесі код фрагменті DOM құжат нысанын және оның getElementById әдісін id төлсипаты үшін "көше мекенжайы" бар веб-бет элементімен байланысты нысанды алу үшін қалай пайдалануға болатынын көрсетеді:
streetAddress = document.getElementById("көше мекенжайы");
Бұл тарауда сіз әлі де DOM-дан келетін алдын ала құрастырылған нысандарды пайдаланасыз, бірақ сонымен бірге нысандардың жаңа түрлері үшін құрылымдарды анықтайсыз және нысандарды жасау үшін сол құрылымдарды пайдаланасыз. Сіз анықтайтын құрылымдар және сіз жасаған нысандар веб-беттің JavaScript кодындағы деректерді ұйымдастыруға көмектеседі. Деректерді ұйымдастыру үшін объектілерді пайдалану объектіге бағытталған бағдарламалау (OOP) деп аталады. Ұйымдастыру қажет деректердің айтарлықтай көлемі болған кезде OOP пайдаланғыңыз келеді. Бұл тарауда веб-беттер алдыңғы тарауларға қарағанда көбірек деректерді пайдаланады және OOP кодты түсінуді жеңілдетуге көмектеседі.
Өзіңіз ойлағандай, егер сізде үлкен бағдарламалау тапсырмасы болса, егеуқұйрықтардың иірімделген код ұясын жасау мүмкіндігі зор.1 1970 жылдары SmallTalk бағдарламалау тілінің дизайнерлері
Егеуқұйрықтар ұясы термині егеуқұйрықтар ұяларын асығыс және кездейсоқ салады және жақын жерде кез келген материалдарды пайдаланады деген жалпы көзқарастан шыққан. Бағдарламашы ретінде сіз өз бағдарламаларыңызды құру кезінде мұндай тәжірибелерден аулақ болғыңыз келеді. Бірақ егеуқұйрықтардан аулақ болу керек деп ойламаңыз. Олар шын мәнінде ойланатын және ұқыпты жаратылыстар, олар бағдарламалық жасақтама индустриясында жақсы қызмет ететін сипаттамалар (егер олардың үлкен мұрындары теру кезінде кедергі болмаса).
Объектілі-бағытталған бағдарламалау терминін енгізу және оны жаңа бағдарламалау тілінің негізгі бөлігіне айналдыру арқылы осы шиыршық кодтық мәселені шешті.
OOP парадигмасының мақсаты - қарапайым адамдардың мәселе және оның шешімі туралы қалай ойлайтынын бағдарламаларды модельдеу. Мәселе туралы ойлағанда, адамдар проблеманы құрайтын нәрселерге назар аударады. OOP көмегімен бұл заттар объектілер деп аталады. Әдетте, олар физикалық тұлғалар, бірақ олар концептуалды нысандар да болуы мүмкін. OOP бағдарламашысы ретінде сіз модельдегіңіз келетін нәрселерді анықтағаннан кейін олардың негізгі қасиеттері мен мінез-құлқын анықтайсыз. Сіз әрбір заттың қасиеттері мен мінез-құлқын объект деп аталатын үйлесімді құрылымға біріктіресіз. OOP бағдарламасын жазу кезінде сіз нысандарды анықтап, оларды жасайсыз және олардың бір-бірімен әрекеттесуін қамтамасыз етесіз.
Мысалы, курстарды сыныптарға тағайындау үшін бағдарлама жазып жатсаңыз, сізге курс нысандары мен бөлме нысандары қажет болуы мүмкін. Курс нысандарында курс атауы мен студенттер саны сипаттары, ал бөлме нысандарында орналасу және сыйымдылық сипаттары болады. Нысанның әрекеті объектімен байланысты әрекеттерді білдіреді. Курс нысаны үшін сізге курстың студенттер саны сипатын реттейтін мінез-құлық қажет болуы мүмкін, өйткені студенттер сабақтың бірінші күніне дейін курстарды қосады және тастайды. JavaScript көмегімен сіз нысанның әрекеттерін әдістер ретінде жүзеге асырасыз.
OOP негізгі ерекшеліктерінің бірі инкапсуляция болып табылады. Жалпы алғанда, инкапсуляция - бұл қорғаныс жабынының ішіне бір нәрсе оралған кезде. Объектілерге қолданылғанда, инкапсуляция нысан деректерінің нысанның ішінде жасырыну арқылы қорғалғанын білдіреді. Жасырын деректермен бағдарламаның қалған бөлігі объектінің деректеріне тікелей қол жеткізе алмайды; бағдарламаның қалған бөлігі деректерге қол жеткізу үшін нысанның әдістеріне сүйенеді. Нысан деректеріне қол жеткізу деректерді оқуды немесе оны өзгертуді білдіреді. Объектінің әдістері жақсы жазылған деп есептесек, әдістер деректерге сәйкес жолмен қол жеткізуді қамтамасыз етеді. Сәйкес қол жеткізуге қол жеткізуді шектеу арқылы бұл бағдарлама деректерін бұзуды қиындатады және бұл қателердің азаюына әкеледі. Ол нысанның әдістерінің нысан деректері мен сыртқы әлем арасындағы интерфейсті қалай құрайтынын көрсетеді.
Құжат нысаны және мәтінді басқару нысаны сияқты DOM ішіне енгізілген нысандармен нысандарды өзіңіз жасаудың қажеті жоқ. Сахна артында веб-бетті жүктегенде, JavaScript механизмі веб-беттегі әрбір элемент үшін (сонымен қатар элементтер ішіндегі әрбір атрибут үшін және элемент тегтері арасындағы әрбір мәтін элементі үшін) нысан жасайды. Бірақ веб-беттің деректері әдепкі бойынша DOM нысандарымен қамтамасыз етілгеннен гөрі көбірек ұйымдастыруға лайық деп ойласаңыз, өз нысандарыңызды жасағыңыз келеді. Жеке нысандарды жасау үшін алдымен анықтау керек
Нақтырақ айтқанда, нысанның құрылымын анықтау үшін сыныпты анықтайсыз. Класс - бұл объект сипаттамаларының сипаттамасы немесе сызбасы. Өздеріңіз білетіндей, объектілер олардың мүшесімен сипатталады s -- олардың қасиеттері мен әдістері. Сол сияқты, сыныпты анықтаған кезде, сіз нысан пайдаланатын сипаттар мен әдістерді көрсетесіз.
Сіз тордағы нүктелерді қадағалайтын веб-бетті жасап жатырсыз делік. Нүктелерді қадағалау үшін оның қасиеттері үшін x және y координаталық мәндері бар Point класын анықтау қажет. Сондай-ақ нүктелердің әртүрлі түстерге ие болуын қаласаңыз, түс сипатын анықтау қажет болуы мүмкін. Әдістер үшін shiftX және shiftY анықтау қажет болуы мүмкін. ShiftX және shiftY әдістері нүктені тиісінше x және y осьтерінің бойымен аударады. Сондай-ақ мән әдісі нүкте мәнін (x, y) жолы ретінде қайтаратындай мән әдісін анықтағыңыз келуі мүмкін, мұнда x және y сандармен ауыстырылады.

1.2 Класстар, конструкторлар және класс синтаксисі

Ең аз дегенде, сыныпты жүзеге асыру үшін сізге сынып тақырыбы мен сыныптың негізгі бөлігі қажет, ал сыныптың ішінде конструктор және кем дегенде бір әдіс қажет. Осыларды түсіндіру үшін нүктенің х және у координаталық орындары үшін x және y қасиеттері бар нүктені анықтайтын классты ұсынамыз. 11.2-суретте сынып сөзін қолданатын сынып тақырыбын, одан кейін сынып нені білдіретінін сипаттайтын атауды ескеріңіз. Бұл жағдайда сынып нүктені білдіреді, сондықтан Point тамаша атау болып табылады.
Point класының денесінде оның конструкторын көруге болады. Конструктор - бұл объект құру әрекеті болған кезде шақырылатын арнайы әдіс. Объектіні құрудың ресми термині - инстанция. Конструктор сөзін және одан кейін үтірмен бөлінген параметрлер тізімін қоршап тұрған жақшаларды қолданатын конструктор тақырыбына назар аударыңыз. Параметрлер конструктор шақыруынан өз мәндерін алады, содан кейін параметр мәндеріне конструктор ішінде қол жеткізуге болады.
class Point { сынып тақырыбы
конструктор(x,y) {
this.x = x; конструктор тақырыбы
this.y = y; Мынаны пайдаланыңыз. х анықтау үшін
} сынып үшін соңғы конструктор және y сипаттары.
value() { Point нысанының мәнін қайтаратын әдіс.
қайтару "(" + this.x + ", " + this.y + ")";
} соңғы мән
} соңғы сынып нүктесі
Бұл таныс болуы керек, өйткені конструктордың параметрлері функцияның параметрлерімен бірдей жұмыс істейді.
Конструктор нысанды құру кезінде не болатынын анықтайды. Әдетте, сіз нысанды жасаған кезде конструктордың жаңадан жасалған нысанның сипаттарына бастапқы мәндерді тағайындауын қалайсыз. Мұнда Point класының конструкторынан мысал келтірілген:
this.x = x;
this.x файлына x тағайындау біртүрлі көрінуі мүмкін. x өзі x деп аталатын параметрге, ал this.x нысанның x деп аталатын қасиетіне сілтеме жасайды. Параметрге және онымен байланысты сипатқа бірдей атауды пайдалану стандартты тәжірибе, бірақ бұл сіздің кодыңыздың жұмыс істеуі үшін қажет емес. 11.2-суреттегі конструктор анықтамасында, егер сіз параметрлерді xPosition және yPosition деп өзгертсеңіз, конструктор тағайындаулары келесідей болуы керек:
this.x = xPosition; this.y = yPosition;

Параметрлерді қалай атағаныңызға қарамастан, сіз әрқашан мынаны пайдалануыңыз керек. объектінің қасиеттеріне сілтеме жасағанда. Мұнда Point класының қасиеттерін анықтау үшін Point класының конструкторында this.x және this.y қолдандық. Кейінірек, Point нысанының сипаттарын шығарып алу және көрсету әдісінде this.x және this.y қолданатынымызды көресіз.
this кілт сөзі контекстке байланысты әртүрлі мағынаны білдіруі мүмкін. Алдыңғы тарауларда оны қоршау элементіне сілтеме жасау үшін оқиға өңдеушілері үшін қалай пайдаланғанымызды есте сақтаңыз ба? Жаңарту ретінде, мұны onmouseover оқиға өңдегішінде қолданатын айналдыру мысалы берілген:
img src="..imagesscrapsAtPlay.jpg" ені = "120" биіктік = "100" alt = тінтуірдің үстінен жылжыту =
"this.src = '..imagesscrapsFirstBirthday.jpg' ;"
Екінші жағынан, конструктор ішінде немесе әдіс ішінде болғанда, this кілт сөзі конструктормен немесе әдіспен байланысты нысанға қатынасады. Осылайша this.x жасалған нысанның x сипатына қатынасады.
Конструктордың не үшін екенін және конструкторды қалай жүзеге асыратыныңызды білетін болсаңыз, конструкторды қалай шақыратыныңызды және жаңа нысанды жасайтыныңызды қарастырайық. Мысалдан бастайық. Point нысанын жасау үшін мына әрекеттерді орындауға болады:
point1 = new Point(100, 200);
Жаңа Point нысанын жасау үшін жаңа құрылымды қалай қолданатынымызды ескеріңіз. Жаңа құрылым шын мәнінде оператор болып табылады. Жаңа таңбаның орнына сөз болғандықтан (мысалы, +, *, т.б.), ол біртүрлі көрінеді, бірақ бәрібір оператор. Жаңа операторды пайдаланған сайын, оны жасағыңыз келетін нысан түріне арналған сынып атауымен орындайсыз. Сынып атауынан кейін үтірмен бөлінген дәлелдер тізімін қоршап тұрған жақшаларды қосасыз. Жаңа оператор көрсетілген сыныптың конструкторын шақырады және оның аргументтерін конструктордың байланысты параметрлеріне жібереді. Осылайша, алдыңғы код Point нысанын жасайтын Point конструкторын шақырады x = 100 және y = 200. Конструктор жасалған нысанды қайтарады және қайтарылған нысан point1 айнымалысына тағайындалады.
Бұл мысалда біз қайтарылған нысанды point1 айнымалысына тағайындайтынымызды ескеріңіз. Нысанды айнымалыда сақтау арқылы біз кейінірек нысанға қол жеткізе аламыз және оны басқара аламыз. Объектіні басқару үшін объект класындағы әдістерді анықтау керек. 11.1-суретте көрсетілгендей, әдістер сыртқы әлеммен интерфейсті қамтамасыз етеді. Сипаттар нысан ішінде инкапсуляцияланады. Егер сіз сыныптан тыс Point нысанының x және y сипаттарына қол жеткізуге әрекет жасасаңыз, бұл OOP инкапсуляциясының негізгі принципін бұзады. Сондықтан мұны жасамаңыз!
Әдіс синтаксисі
Енді сізге ыңғайлы болу үшін осында көшірілген 11.2-суреттегі Point класс анықтамасындағы мән әдісін қарастырайық:
мән() {
қайтару "(" + this.x + ", " + this.y + ")";
} соңғы мән
Мән әдісі көп жұмыс істемейді -- ол жай ғана (x, y) пішініндегі Point нысанының мәнін қайтарады. Сонымен, x және y мәндері 100 және 200 болатын Point нысанын жасасаңыз және кейінірек сол нүкте үшін мән әдісін шақырсаңыз, әдіс "(100, 200)" мәнін қайтарады. Әдіс тақырыбы функция тақырыбымен бірдей, тек сол жақта функция сөзін қолданбайсыз. Бірақ сіз параметрлердің үтірмен бөлінген тізімін қоршап тұрған жақшалардан кейін әдіс атауын көрсетесіз. Мән әдісі үшін ешқандай параметрлер қажет емес, сондықтан жақшалар бос. Әдістің ішінде this.x және this.y арқылы Point нысанының x және y сипаттарына қалай қол жеткізетінімізге назар аударыңыз. Қайтару операторы арқылы мәнді қалай қайтаратынымызға назар аударыңыз.
Әдісті шақыру үшін әдісті шақыруды нысанмен алдын ала айту керек. Бұл DOM нысандары үшін әдіс шақыруларымен істегеніңізбен бірдей. Мысалы, пішінді жарамды енгізу үшін тексеру үшін checkValidity әдісі шақыруын келесідей пішін нысанымен алдын ала айтасыз:
form.checkValidity()
Көптеген басқа бағдарламалау тілдерінде (мысалы, SmallTalk, Java және C++) инкапсуляцияның қатаң орындалуын қамтамасыз ететін синтаксис бар. Басқаша айтқанда, бұл тілдерде сіз жеке деректерді тек сынып әдістерінің ішінен қол жеткізуге болатындай етіп анықтауға болады және оған сыныптан тыс қол жеткізуге болмайды. JavaScript көмегімен инкапсуляцияны орындау үшін пайдалануға болатын кірістірілген синтаксис жоқ. Бірақ JavaScript сыныптарына мәжбүрлі инкапсуляцияны қосудың жұмыс стратегиялары бар. Мүмкін, ең тиімді стратегия - WeakMap нысанын пайдаланатын стратегия. Бұл стратегия және басқалары бұл кітаптың аясынан тыс, бірақ олар туралы JavaScript жеке деректерін іздеу арқылы өз бетінше білуге болады.
СheckValidity сияқты DOM ұсынған әдісті шақырғанда, сол жақтағы нысан DOM түйін тармағымен автоматты түрде қамтамасыз етіледі. Үйде жасалған әдістерді шақыру үшін алдымен нысанды іске қосып, содан кейін әдісті шақыру үшін осы нысанды пайдалану керек. Мысалға:
point1 = new Point(100, 200); document.getElementById("pt1").inne rHTML = point1.value();
Алдыңғы бөлімде сіз жаңа OOP синтаксисін үйрендіңіз. Толық веб-бет контекстінде үйренгендеріңізді іс жүзінде қолданайық. Point Tracker веб беті бұрын ұсынылған Point сыныбына негізделген. 11.3-суретте көрсетілгендей, веб-бет пайдаланушы тінтуірді басқан жерлерді қадағалайды. Бастапқыда веб-бет екі нүкте белгісінің жанында ешнәрсе көрсетпейді және Қашықтық түймешігінің астында ештеңе көрсетілмейді. Пайдаланушы веб-бетті басқаннан кейін басу орны 1-нүкте: белгісінің жанында көрсетіледі. Суретте көріп отырғаныңыздай, орын (x, y) нүктесі ретінде көрсетіледі, мұндағы x және y - көру терезесінің x және y осі бойындағы пиксель мәндері. Пайдаланушы қайта басқаннан кейін жаңа басу орны 2-нүкте: белгісінің жанында көрсетіледі. Кейінгі шертулер ең соңғы басу орнын 2-нүкте: белгісінің жанында көрсетеді, ал ескі 2-нүкте мәні 1-нүкте: белгісінің жанында жылжиды. Пайдаланушы арақашықтық түймешігін басса, веб-бет екі көрсетілген нүктенің арасындағы қашықтықты пиксельмен есептейді және көрсетеді. Көрсетілген нүктелер болмаса немесе бір ғана көрсетілген нүкте болса, Қашықтықты бөлу түймесін басу қашықтықты есептеу мүмкін еместігі туралы ескерту жасайды.
Оның сценарий элементі сыртқы JavaScript файлына сілтеме жасайтынын ескеріңіз. Сыртқы JavaScript файлын пайдалану орынды, себебі веб-бет JavaScript-ті қажет етеді. Веб-бет өзінің Point сыныбы үшін OOP пайдаланады және кез келген уақытта OOP-ті негіздеу жеткілікті болса, JavaScript-ті бөлек файлға қою керек шығар. Екі бетті көрсету үшін толтырғыш ретінде қызмет ететін екі аралықты элементтерге назар аударыңыз майлардың (x, y) позициялары. Төменгі жағындағы div элементіне назар аударыңыз, ол пайдаланушы қашықтықты бөлу түймешігін басқаннан кейін хабар үшін толтырғыш ретінде қызмет етеді. Соңында, html элементі үшін onclick оқиға өңдегіштерін және Ашық қашықтық түймешігін ескеріңіз. Кейінірек біз осы оқиға өңдеушілер шақыратын функцияларды қарастырамыз, бірақ алдымен веб-беттің JavaScript-тің жүрегіне - Point класс анықтамасына назар аударайық.
Point сыныбын құруда біз 11.2-суреттегі бұрынғы Point класс анықтамасынан бастадық, содан кейін екі нүкте арасындағы қашықтықты есептеуді қолдау үшін код қостық. Бұл есептеуге арналған кодта біз алдымен екі Point нысанының бар-жоғын тексереміз. Нақтырақ айтқанда, біз Point нысандарының санын қадағалайтын count атты класс сипатын қолданамыз -- бастапқыда 0, содан кейін 1, содан кейін 2. Біз санау сипатын класс сипаты ретінде көрсетеміз, себебі санау Point сыныбымен байланысқан. Point сыныбының жеке данасымен емес, тұтас. Бұл біз this.x және this.y сілтеме жасайтын x және y сипаттарынан өзгеше. Бұл сипаттар жеке Point нысанына арналған. Әрбір Point нысанында x және y өз көшірмелері бар, бұл мағынасы болуы керек, себебі әрбір нүкте өз орнында. Екінші жағынан, Point нысандарының жалпы санын қадағалау үшін әрбір Point нысанында бөлек санақ мәндерінің болуы қажет емес. Әрбір Point нысанында бөлек санау мәндері болса, бұл жадты ысырап болар еді.
!DOCTYPE html
html lang="en" onclick="captureClick(оқиға);"
бас
meta charset="utf-8"
meta name="author" content="Джон Дин"
titleНүкте бақылау құралыtitle
script src="pointTracker.js"script
head
дене
h1Нүкте бақылау құралыh1
p
Оның орнын түсіру үшін осы веб-беттің кез келген жерінде тінтуірді басыңыз. Екі орынды түсіргеннен кейін, олардың бөлінуін пикселдерде көрсету үшін Ашық қашықтық түймесін басыңыз. Қосымша ұпайлар алу үшін қайтадан басыңыз.
p
1-нүкте: span id="pt1"span
br
2-тармақ: span id="pt2"span
brbr
input type="button" id="btn" value="Ашық қашықтық" onclick="displayDistance(оқиға);"
brbr
div id="хабарлама"div
body
html
Класс қасиеттеріне арналған синтаксис тұрақты (нысан) қасиеттерге арналған синтаксиске ұқсас. Меншіктің алдында мұның орнына, бұл мүліктің алдындағы сынып атауы. Сонымен, Point сыныбының конструкторында біз count класының қасиетіне сілтеме жасау үшін Point.count қолданамыз. Мұнда конструктордан тиісті Point.count коды берілген:
егер (Point.count == undefined) { Point.count = 1;
}
басқа болса (Point.count == 1) { Point.count = 2;
}
Сипат айнымалы болып табылады және барлық айнымалылар сияқты, егер оларды инициализацияламасаңыз, олар анықталмаған мәннен басталады. Осылайша, алдыңғы код фрагментінде біз санаудың анықталмағанын тексереміз, егер солай болса, бұл конструктор бірінші рет шақырылып жатқанын білдіреді және біз санауды 1-ге орнатамыз. Конструктор екінші рет шақырылғанда, біз санауды көбейтеміз. бастап
Келесі конструктор шақырулары санауды 2-де сақтайды, бұл ешқашан екі нүктеден артық нысан болмайды дегенді білдіреді. Неліктен тек екі Point нысаны бар? Кейінірек captureClick функциясын қарастырған кезде, пайдаланушы тінтуірді басқанда, конструкторды шақырып, жаңа Point нысанын іске қосатынын көресіз. Пайдаланушы бірінші және екінші рет басқанда, басылған орындар Point1 және Point2 белгілерінің жанында көрсетіледі. Пайдаланушы үштен бірін басқанда
********************************** ****************** *******
* pointTracker.js
* Джон Дин
*
* Бұл файл Point сыныбын жүзеге асырады.
* Ол екеуінің орналасуы үшін Point нысандарын сақтайды
* тінтуірдің соңғы шертулері.
*********************************** ************** ******
сынып нүктесі {
конструктор(x, y) { Класс атауының нүктесі бар сынып қасиетіне кіріспе.
this.x = x;
this.y = y;
егер (Point.count == undefined) { Point.count = 1;
} жаңарту саны
мүліктің құны
басқа болса (Point.count == 1) {
Point.count = 2;
}
} соңғы конструктор

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Обьектілі - бағытталған программалау негіздері
С. Құрылымдар
Банкомат
Оқиғаларды өңдеу
Көрсеткіштер массиві
Web - қосымшаларды жасаудың аспаптық құралдары
Java бағдарламалау тілі
Орта мектеп жүйесін ақпараттық жобалау
ҒЫЛЫМИ ЖОБА. МАТЕМАТИКАЛЫҚ ҚАРАПАЙЫМ ЕСЕПТЕУЛЕРДІ БИЗНЕСТІ ДАМЫТУДА ҚОЛДАНУ
Жадыны динамикалық үлестіру
Пәндер