| | |
| |
|
Објектно оријентирани концепти во Јава - Трет дел |
прегледано: |
205331 |
вкупно гласови: |
4 |
средна оценка: |
4.75 |
коментари: |
5 |
испрати до пријател
испечати
|
Конструктори
Конструкторите се специјални типови на методи кои се повикуваат при инстанцијарање не објекти. Конструкторите ти овозможуваат да назначиш почетни вредности на некои променливи или да направиш некоја почетна иницијализација на класата.
На пример класата „Drvo“, поточно декларацијата на особеноста „visina“ (која веќе треба да е декларирана како приватна и да има креирано пристапни методи за неа, од задачата од вториот дел ;) )
private int visina = 0;
Делот „= 0“ е она што ни е од значење моментално. Зошто сите дрва да бидат со висина 0? Со користење на конструктор можеме да му дозволиме на корисникот да специфицира вредност која ќе биде иницијална висина на дрвото. Еве како би изгледало тоа:
private int visina;
public Drvo(int visina) {
if (visina < 0) this.visina= 0;
else this.visina= visina;
}
На прв поглед изгледа исто како и нормална метода, но сепак има две разлики:
* Конструкторите никогаш не враќаат вредност, затоа и не се декларира податочниот тип (void, int, boolean итн.) при неговоро декларирање
* Контрукторите секогаш имаат исто име како и класата која се инстанцира. Бидејќи ја пишуваме класата „Drvo“ конструкторот мора да се вика „Drvo“. Според конвнецијата, ова е единствено место каде што метода се пишува со почетна голема буква.
Доколку направиме дисекција на горепишаното тоа би изгледало вака: декларираме јавен конструктор кој прима еден параметар и неговата вредност ја доделува на променлива од податочен тип „integer“ именувана како „visina“. Следната линија проверува дали променливата „visina“ е помала од нула. Ако е помала од нула тогаш ја сетира вредноста за висина на дрвото на нула (несакаме дрвото да „расте“ во земја, ако беше така тогаш ќе „игравме“ со компири). Доколку е поголема од нула ја доделуваме вредноста на параметарот на нашата особеност.
Внимавај на тоа дека бидејќи имаме локална променлива „visina“ на особеноста „visina“ на моменталниот објект мораме да и се обратиме со „this.visina“. „this“ е специјална променлива во Јава која секогаш посочува кој објектот во кој се наоѓа моменталниот код кој се извршува. Доколку ова ти е малку збунувачки, секогаш можеш влезниот параметар да го прекрстиш во нешто како „novaVisina“. Тогаш нема да мораш да се обраќаш на особеноста „visina“ со помош на „this“.
Е сега откако класата „Drvo“ има конструктор кој прима параметар, мора да се специфицира вредност за истиот кога се креираат нови дрвја:
Drvo moeDrvo = new Drvo(10); //inicijalna vrednost 10
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|