| | |
| |
|
Објектно оријентирани концепти во Јава - Трет дел |
Статични членови
Доколку се сеќаваш на примерите си изворен код кои ги споменав до сега, сигурно имаш барем еден клучен збор кој можеби ти е сеуште загадка. Всушност тој се појавува во првиот пример и во пошетокот на секоја Јава програм кој сме го напишале досега:
public static void main(String[] args) {
Во случај да сеуште не ти текнува станува збор за клучниот збор „static“. Како методите така и променливите можат да бидат декларирани како „static“ (статични). Статичните членови припаѓаат на класата, наместо на објект од класата. Пред да објаснам зошто методот „main“ се декларира како статичен ајде да разгледаме еден поедноставен случај.
Можеби ќе биде корисно во некој момент да ги знаш вкупниот број на дрва кои биле интанцирани од класата „Drvo“ во твојот програм. Поради тоа едно од решенијата би било да се креира статична особеност наречена „vkupnoDrvja“ во класата „Drvo“, и да се промени конструкторот на класата преку кој би ја покачувале вредоста на променливата „vkupnoDrvja“ за еден секој пат кога би се инстанцирало ново дрво. Потоа со користење на ново креираната метода „getVkupnoDrvja“ би можеле да проверуваме колку дрвја се инстанцирани со повик на Drvo.getVkupnoDrvja().
Еве го кодот за променетата класа „Drvo“:
public class Drvo {
private static int vkupnoDrvja = 0;
private int visina;
public Drvo() {
this(0);
}
public Drvo(int visina){
vkupnoDrvja = vkupnoDrvja + 1;
if (vidina < 0) this.visina = 0;
else this.visina = visina;
}
public static int getVkupnoDrvja(){
return vkupnoDrvja;
}
.....
.....
.....
}
Статичните членови се корисни во барем две ситуации:
* Кога треба да чуваш некоја информација која се дели помеѓу членовите во некоја класа (како примерот погоре)
* Кога нема смисла да се има повеќе од една истанца на некоја променлива или метода.
Функцијата „main“ е пример за вториот случај. Стварно не би имало смисла ни логика да има два методи кои би се викале „main“.
Друг пример за статичен член е особеноста „out“ на класата „System“ (ако ти е полесно „System.out“, го користев неговиот „println“ метод во повеќе случаи).
Не се секирај ако сега малце ти е збунувачко ова со логиката зошто се потребни статичките членови, но доколку го свати горниот пример со броењето на дрвјата, односно на инстанците од класата „Drvo“ на добар правец си.
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|