| | |
| |
|
Објектно оријентирани концепти во Јава - Прв дел |
Користње на класата Drvo
Сега веќе ја имаш шемата за дрвото. Голема работа, нели? Интересното допрва доаѓа до користење на шемата за да креираш и манипулираш со објектите од тој тип во Јава програм. Креирај нова датотека во твојот текст едитор именувана како „SadenjeNaDrva.java“ и докуцувај ги линиите кои ги објаснувам во понатамошниот текст.
1 /**
2 * SadenjeNaDrva.java
3 * Ednostaven Java program za testiranje na klasata Drvo
4 */
5
6 class SadenjeNaDrva {
Точно, самиот програм е класа. Кога стартуваш Јава програм ти едноставно обезбедуваш име на класа која ја содржи специјалната метода „main“ која автоматски ќе биде извршена. Понатака во текстовите ќе објасниме како да ја искористиме предноста од тоа што Јава програмите се всушност класи, но сега за сега тоа само ќе ни служи како потсетник како секој дел од Јава програмот припаѓа во мрежата од класи и објекти дури и самиот програм.
7 public static void main(String[] args) {
Ова е почетокот на специјалната метода „main“ која автоматски е извршена за да го активира твојот Јава програм. Сигурно ги забележуваш сличностите со декларацијата на методата „rastenje“ од класата Drvo. И двете се јавни методи (public) и не враќаат ништо. Тоа го покажуваат клучните зборови „public“ и „void“ кои се во почетокот на декларацијата. Што се однесува до клучниот збор „static“ ќе мора да бидеш стрплив/а за да добиеш разрешница на таа мистерија ;).
8 System.out.println("Ajde da nasadime nekoe drvce! :)");
Програмот започнува со мала порака која објаснува што истиот ќе прави. Тоа не би требало да е ништо ново за тебе.
9 // Kreiraj novo drvo
10 Drvo drvo1 = new Drvo();
Како што коментарот од линија број 9 објаснува, линијата 10 инстанцира нов објект од типот Drvo. Ова е навистина битна линија, затоа ќе се потрудам да ја објаснам подетално.
Линијата започнува со декларација на класата (типот) на објектот кој треба да се креира (во случајов Drvo). После го именуваме нашето ново дрво (во овој случај drvo1). Ова всушност е идентично со декларирање на променлива со специфицирање на податочниот тип проследено со името на променливата (пример: int sobnaTemperatura).
Во остатокот од линијата се случува магијата. Зборот „new“ е резервиран збор во Јава кој стартува инстанцирање на нов објект. После „new“ следува името на класата која треба да се инстанцира, проследено со затворени средни загради (во подоцнежни посложени примери заградите можеби и нема да бидат празни).
На кратко оваа линија вели: „креирај нова променлива од типот Drvo именувана како drvo1 и додели му ја вредноста од новото дрво.“ Така да во линијата не само што се креира нов објект од типот Drvo туку се креира и нова променлива која како вредност ќе го има новокреираното дрво. Не се секирај ако малку те буни ова, во подоцнежните примери ќе се доразјасни се.
Сега, откако го креиравме дрвото ајде да направиме нешто со него:
11 // Ispecati ja visinata na drvoto
12 System.out.println("Kreirav drvo koe e visoko " +
13 drvo1.visina + " metri.");
Оваа линија (12) печати текст како и секоја друга користејќи го изразот „System.out.println“, но малку се разликува од претходните бидејќи оваа за печатењето зема вредност од променливата „visina“ од „drvo1“ (drvo1.visina). Доколку напишеше само „height“, Јава ќе „помислеше“ дека ти целиш кон некоја променлива декларирана во овој метод или на особина од класата „SadenjeNaDrva“ (самиот програм). Неможејќи да ја најде Јава ќе испечати порака дека неможе да ја најде променливата уште при самото компајлирање. За да кажеш на Јава дека мислиш на особината „height“ на „Drvo“-то, односно на „drvo1“ со помош на операторот „.“ (точка, drvo1.height).
Операторот „.“ можеме да го преведеме како да кажуваме на Јава: „припаѓа на“, но кога го читаш изразот наназад. Бидејќи дрвата се креираат со почетна вредност за висината 0, линиите 12 и 13 ќе испечатат: „Kreirav drvo koe e visoko 0 metri.“
Повикувањето на методи (операции) на некој објект се постигнува на сличен начин:
14 drvo1.rastenje();
Оваа линија го повикува методот кој припаѓа на „Drvo“ во објектот „drvo1“ предизвикувајќи раст на дрвото за 1 метар. Се приметува дека заградите укажуваат на Јава дека се работи за повик до метода, не до особина. После оваа линија ајде пак да ја испечатиме висината на дрвото:
15 System.out.println("Posle malo rastenje sega drvoto e visoko " +
16 drvo1.visina + " metri.");
Ова ќе го испечати текстот: „Posle malo rastenje sega drvoto e visoko 1 metri.“
За да прикажеме дека секое дрво е самостојно и има своја специфична висина во следниот пример ќе креираме неколку дрва и ќе ги „пораснеме“ за различни вредности.
17 Drvo drvo2 = new Drvo();
18 Drvo drvo3 = new Drvo();
19 drvo2.rastenje();
20 drvo3.rastenje();
21 drvo2.rastenje();
22 drvo3.rastenje();
23 drvo2.rastenje();
24 System.out.println("Eve gi finalnite visini:");
25 System.out.println(" drvo1: " + drvo1.visina + " metri");
26 System.out.println(" drvo2: " + drvo2.visina + " metri");
27 System.out.println(" drvo3: " + drvo3.visina + " metri");
28 }
29 }
Сними го и изврши го програмот:
C:\JavaDrvo> javac SadenjeNaDrva.java
Осигурај се дека класата „SadenjeNaDrva.class“ е во ист директориум со „Drvo.class“, потоа изврши го програмот:
C:\JavaDrvo> java SadenjeNaDrva
Ajde da nasadime nekoe drvce! :)
Kreirav drvo koe e visoko 0 metri.
Posle malo rastenje sega drvoto e visoko 1 metri.
Eve gi finalnite visini:
drvo1: 1 metri
drvo2: 3 metri
drvo3: 2 metri
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|