Professional Documents
Culture Documents
ООП Предавање 3 - 2015
ООП Предавање 3 - 2015
Програмирање
предавањe 3 (02.10.2015)
Референци во Јава
• Во C и C++ се викаат покажувачи
• Во Јава се викаат референци
• Референците покажуваат на објекти во
меморијата, всушност
• Референцата покажува на одредена
инстанца на дадена класа
декларирање на референца
integer x;
Референцирање на објекти
Со класите дефинираме објекти
еден објект е инстанца на "својата" Класа.
го повикуваме конструкторот (методот за
конструирање) за да се креира нов објект
new Integer(3);
public class Dodeluvanje {
Integer broj;
broj = new Integer(3);
Integer x = broj;
Integer y = new Integer(3);
Integer z;
} }
Java Heap
Јава Heap (се чита ХИП) покажува кои
референци и кои објекти постојат додека
(за време) на извршувањето на Java
програмот (во runtime)
x broj y z
резултира со грешка
поточно NullPointerException
Garbage Collection
Објект кој нема референца до него не
може да се користи
List<String> b = a;
// b i a ja spodeluvaat listata
a.add("Hello, world!");
System.out.println(b);
// pecati “Hello, world!”
} }
Спектар на референци
• Големи загради {...} дефинираат региони
на спектар (scope)
• Референците постојат од времето кога се
декларирани се додека не излезат
„надвор од спектарот“
• Атрибутот може да се референцираат во
класата
• Параметри можат да се референцираат
во методот
public class ScopePrimer {
private int globalnoPole;
public int metod(int parametar)
{
int lokalnaPromenliva1;
if (globalnoPole > 0) {
int x; }
int lokalnaPromenliva2;
}
}
public class ScopePrimer {
private int globalnoPole;
}
int lokalnaPromenliva;
// грешка: во ист спектар
Статички и нестатички
Атрибутите и методите може да се
декларираат како "статички"
System.out.println(bean.beanCounter);
// pecati “1”
Статички атрибути
public class Bean {
public static int beanCounter = 0;
public Bean() {
beanCounter++; }
} }
Нестатички методи
public class Bean {
private boolean planted = false;
public void plantBean() {
planted = true;
}
} }
Статички методи
public class Bean {
private boolean planted = false;
public static void plantBean(Bean bean) {
bean.planted = true; }