114
ЕЧНИК ПОЈМОВА -ПОДСЕТНИК АУТОР: СЕБАСТИАН НОВАК ШКОЛА РАЈАК ТРОМЕСЕЧНИ КУРС ЈАВЕ ОСНОВЕ ПРОГРАМИРАЊА www.rajak.rs

Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

-РЕЧНИК ПОЈМОВА

-ПОДСЕТНИК

АУТОР: СЕБАСТИАН НОВАК

ШКОЛА РАЈАК ТРОМЕСЕЧНИ КУРС ЈАВЕ ОСНОВЕ ПРОГРАМИРАЊА

ww

w.ra

jak

.rs

Page 2: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОСНОВЕ ПРОГРАМИРАЊА (1)

Програм

Текстуална форма алгоритма, представљена

рачунару

Променљива

Именовани део меморије рачунара који чува

податке у себи

Синтакса

Правила за писање програма на неком

програмском језику – граматика и правопис

Семантика

Значење иза реченица – наредби написаних на

програмском језику

ww

w.ra

jak

.rs

Page 3: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОСНОВЕ ПРОГРАМИРАЊА (2)

Програм се покреће и извршава линију по линију кода, редом како је написан

Да би програм могао да буде покренут мора у себи имати операцију main public static void main (Strng[ ] args){

Све у Јави се налази унутар класа 1 .java фајл = 1 класа

Програм почиње извршавање од прве линије операције main public static void main (Strng[ ] args){

Класа која у себи има main се назива Главном класом програма, јер она дефинише како он ради

ww

w.ra

jak

.rs

Page 4: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОМЕНТАРИ

Коментари представљају текст у коду који није део програм, већ служи као објашњењe ономе ко чита код.

Врсте:

Линијски – у једном реду

Вишелинијски – у више редова

// ovaj deo kod sluzi za nesto vazno

/*

detaljno objasnjenje

O nekom vecem delu koda

i nekim instrukcijama kako se on koristi

*/

ww

w.ra

jak

.rs

Page 5: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРОМЕНЉИВЕ (1)

Променљиве су именовани простор меморије,

који смо ми заузели за наш програм

Омогућавају нам да ми уносимо податке у

програм у нама природном језику ( 1, 2, 3,4) а

да се рачунару то представи у виду јединица и

нула - испод хаубе.

Да би направили променљиву, морамо јој

навести тип и дати јој име

ТИП ИМЕ

ww

w.ra

jak

.rs

Page 6: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРОМЕНЉИВЕ (2)

Типови променљивих:

Целобројни – int

Реални – double

Логички – boolean , чува у себи тачно или нетачно

Знаковни – char , чува у себи једно словo - знак

У променљиву целобројног типа могу да се стављају само цели бројеви!

Тип податка мора одговарати типу променљиве!

Примери декларације неких променљивих:

int x;

int x,y,z,e,d,r,g,h;

double r,w,qq,pp, tR_, t1, t2, t___t1;

boolean logicka1 = true;

boolean logicka2 = false;

ww

w.ra

jak

.rs

Page 7: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОПЕРАТОРИ

Над променљивама можемо да радимо неке

операције – уз помоћ оператора

Оператори – врше операције

Имамо аритметичке, релационе и логичке

Аритметички: + , - , *, /, =

Релациони: == , !=, >, >=, <, <=

Логички: &&, ||, !

ww

w.ra

jak

.rs

Page 8: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

АРИТМЕТИЧКИ ОПЕРАТОРИ (1)

= оператор за доделу вредности

Са леве стране се пише променљива у коју

стављамо неку вредност

Са десне стране се пише вредност која се ставља у

променљиву

+ оператор за сабирање, сабирци се пишу лево

и десно од оператора

int x = 2 + 2;

double y = 2.5 + 3.5;

double x1 = y + 10.5;

ww

w.ra

jak

.rs

Page 9: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

АРИТМЕТИЧКИ ОПЕРАТОРИ (2)

Оператор - , умањеник (онај од кога се одузима) се пише са леве стране оператора, умањилац (вредност која се одузима од умањеника) се пише са десне стране

int x = 4 – 2;

int y = 10 – x;

double z = 99.5 – 0.49;

Оператор *, чионици се пишу са леве и десне стране:

int x = 9 * 9;

int y = 4 * 3;

double p = 99.01 * 0.343432;

ww

w.ra

jak

.rs

Page 10: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

АРИТМЕТИЧКИ ОПЕРАТОРИ (3)

Оператор / , дељеник (онај кога делимо) се

пипе са леве стране, делиоц (вредност са којом

делимо дељеника) са десне:

int x = 8 / 4;

int y = 10/3;

double x = 10/3;

double y = 33.0344 / 4233.4;

ww

w.ra

jak

.rs

Page 11: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СКРАЋЕНИ ОБЛИЦИ ОПЕРАРАЦИЈА

Због оваквих ситуација су уведене скраћени

облици:

jakoDugackoImePromenljive = jakoDugackoImePromenljive + 1;

jakoDugackoImePromenljive++; // uvecava za 1

jakoDugackoImePromenljive--; // umanjuje za 1

jakoDugackoImePromenljive+=4; // uvecava za 4

jakoDugackoImePromenljive -=1; // umanjuje za 1

jakoDugakoImePromenljive *= 4; //mnozi sa 4

jakoDugackoImePromenljive /=2; //deli sa 4

ww

w.ra

jak

.rs

Page 12: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРИОРИТЕТИ АРИТМЕТИЧКИХ

ОПЕРАЦИЈА

Приоритети рачунских операције, аритметике

су исти као и у математици

Сложеније изразе пишемо употребом

оператора заграда ( ) које дефинишу

приоритет – исти као у математици, оно у

загради ће се израчунати пре онога ван ван

заграде

int x = 9 * ( ( 99 + 2 ) - 100/10 );

int y = x*8 + (4 – x*10) + ( 99 – 9);

ww

w.ra

jak

.rs

Page 13: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РЕЛАЦИОНИ ОПЕРАТОРИ (1)

Користе се за постављање логичких услова

Пореде вредност са леве стране и вредност са

десне неком од операција поређења

Резултат ових операција је true или false

ww

w.ra

jak

.rs

Page 14: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РЕЛАЦИОНИ ОПЕРАТОРИ (2)

Оператор за проверу једнакости, ==

Проверава да ли је десна страна једнака са левом

boolean rez = 10 == 2; // rezultat ce biti false

boolean rez2 = 1 == 1 ; // rezultat ce biti true

Оператор за проверу неједнакости, !=

Проверава да ли је десна страна различита од

леве

boolean rez = 10 != 2; // rezultat ce biti true

boolean rez2 = 1 != 1 ; // rezultat ce biti false

ww

w.ra

jak

.rs

Page 15: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РЕЛАЦИОНИ ОПЕРАТОРИ (3)

Оператор >, проверава да ли је вредност са

десне стране већа од вредности са леве стране

boolean b = 10 > 2; // rezultat ce biti true

boolean b1 = 1 > 1; // rezultat ce biti false

boolean b2 = 1 > 2; // rezultat ce biti false

Оператор >=, проверава да ли је вредност са

десне стране већа или једнака вредности са

леве стране

boolean b = 10 >= 2; // rezultat ce biti true

boolean b1 = 1 >= 1; // rezultat ce biti true

boolean b2 = 1 >= 2; // rezultat ce biti false

ww

w.ra

jak

.rs

Page 16: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РЕЛАЦИОНИ ОПЕРАТОРИ (4)

Оператор <, проверава да ли је вредност са

десне стране мања од вредности са леве стране

boolean b = 10 < 2; // rezultat ce biti false

boolean b1 = 1 < 1; // rezultat ce biti false

boolean b2 = 1 < 2; // rezultat ce biti true

Оператор <=, проверава да ли је вредност са

десне стране мања или једнака вредности са

леве стране

boolean b = 10 <= 2; // rezultat ce biti false

boolean b1 = 1 <= 1; // rezultat ce biti true

boolean b2 = 1 <= 2; // rezultat ce biti true

ww

w.ra

jak

.rs

Page 17: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЛОГИЧКИ ОПЕРАТОРИ (1)

Врше логичке операције над логичким

вредностима или променљивама

Оператор за негацију логичке вредности, !

Претвара тачно у нетачно, нетачно у тачно

boolean b1 = !true; // rezultat ce biti false

boolean b2 = !false; // rezultat ce biti true

boolean t = true;

boolean b3 = !t; // rezultat ce biti false

ww

w.ra

jak

.rs

Page 18: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЛОГИЧКИ ОПЕРАТОРИ (2)

Оператор за вршење операције ЛОГИЧКОГ И,

&&, резултат је true, само ако су обе

стране true, у свим осталим случајевима је

false

boolean t1 = true;

boolean t2 = true;

boolean n1 = false;

boolean n2 = false;

boolean b = t1 && t1; // rezultat ce biti true

boolean b1 = t1 && n1l // rezultat ce biti false

boolean b1 = 9 > 4 && 3 > 2; // rezultat ce biti true

boolean b2 = 4 < 9 && 2 ==2; // rezultat ce biti false

ww

w.ra

jak

.rs

Page 19: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЛОГИЧКИ ОПЕРАТОРИ (3)

Логичко И користимо када желимо да направимо

сложени услов, који се састоји од више једноставних

услова

Биће тачан само ако су сви једноставни у њему тачни

Који год да је нетачан од једноставних, цео сложен је

нетачан

Пример, услов да студент положи испит:

predispitneUradjene && brojBodova>=55 && imaPotpis &&

ispitPrijavljen && semesterOveren

Биће једино тачано ако су сви појединачни услови тачни

Који год да је нетачан чини цео израз нетачним јер се ради о

логичком И

ww

w.ra

jak

.rs

Page 20: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЛОГИЧКИ ОПЕРАТОРИ (4)

Логичко ИЛИ користимо, ||, када желимо да

направимо сложени услов, који се састоји од

више једноставних услова

Цео сложен услов ће бити тачан ако је бар један од

једноставних тачан

Једино ће бити нетачан ако су сви нетачни

Означава се са симболом ||

boolean t = true;

boolean n = false;

boolean b = true || false ; // rezultat true

boolean b1 = t || n; // rezultat true

ww

w.ra

jak

.rs

Page 21: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЛОГИЧКИ ОПЕРАТОРИ (5)

Пример, услов да студент падне на испиту:

!predispitneUradjene || brojBodova<55 || !imaPotpis ||

!ispitPrijavljen || !semesterOveren

Који год од ових услова да буде тачан, студент је пао

испит.

Једино ће положити испит ако ниједан од ових услова се

не оствари.

ww

w.ra

jak

.rs

Page 22: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ИСПИС ПОДАТАКА НА КОНЗОЛУ

Користимо готову функцију по имену println

Која се налази у групи функција за излаз

А функције за излаз се налазе у групи системских

функција

Користимо оператор . за приступ деловима кода

Како користимо println?

System.out.println(“NEKI TEKST ZA ISPIS”);

System.out.println(4);

int x=9;

System.println.out(x);

System.out.println(“X je:” + x); // ispisace se: X je: 9

ww

w.ra

jak

.rs

Page 23: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

УНОС ВРЕДНОСТИ ПРОМЕНЉИВЕ ПРЕКО

ТАСТАТУРЕ

Можемо уносити преко тастатуре податке које

користи наш програм

За то имамо Scanner

Како га користимо:

Scanner nekoIme = new Scanner(System.in);

int x = nekoIme.nextInt();

double y = nekoIme.nextDouble();

ww

w.ra

jak

.rs

Page 24: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОНТРОЛА ТОКА

Можемо као и на дијаграмима да одлучимо

куда ће ићи наш програм

ww

w.ra

jak

.rs

Page 25: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

IF

if (USLOV){

// ako je tacan uslov

// uradi nesto

}

// ako nije tacno samo

// preskoci

// i nastavi dalje dole

int x = 4;

if ( x ==4){

System.out.println(“X je 4!”);

}

ww

w.ra

jak

.rs

Page 26: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

IF - ELSE

if (uslov){

// ako je tacan uradi nesto

} else {

// nije tacan uslov

// uradi nesto

}

int brBodova = 55;

if(brBodova>=55){

System.out.println(“Polozio!”);

} else {

System.out.println(“Pao!”);

}

T T

ww

w.ra

jak

.rs

Page 27: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

IF – ELSE IF – … - ELSE IF – ELSE

НИЗ УСЛОВА, РЕДОМ СЕ ПРОВЕРАВАЈУ

ИЗВРШАВА СЕ ПРВИ КОЈИ БУДЕ ТАЧАН , ОСТАЛИ СЕ НЕ ПРОВЕРАВАЈУ

ДАЉЕ

ww

w.ra

jak

.rs

Page 28: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

IF – ELSE IF – ELSE IF .. ELSE

if(uslov1){

} else if (uslov2){

} else if (uslov 3){

} …

} else {

}

if(x==1){

System.out.println(“X je 1!”);

} else if (x==2){

System.out.println(“X je 2!”);

} else if (x==3){

System.out.println(“X je 3!”);

} else {

System.out.println(“X nije ni 1, ni 2, ni 3!”);

}

ww

w.ra

jak

.rs

Page 29: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

SWITCH CASE CASE CASE DEFAULT

Користимо када сигурно знамо које све вредности може имати нека

променљива, да не пишемо предугачке if-else if-ове

ww

w.ra

jak

.rs

Page 30: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

SWITCH CASE CASE CASE DEFAULT

switch (neka_promenljiva){

case vrednost1:

nekeNaredbe;

break;

case vrednost2:

nekeNaredbe;

break;

default:

nekeNaredbe;

break;

}

int x = 4;

switch (x)

ww

w.ra

jak

.rs

Page 31: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОЛАКШАВАЊЕ РАДА СА SWITCH –CASE

КОНСТАНТЕ

Често switch-case-ови могу да буду обимни и тада постаје компликација сналажење међу case-овима, да се нађе која је вредност за шта

Употреба константи – имена за неке вредности

final int IME_ZA_CASE; // obicno se pisu velikim slovima

// jednom se zada vrednost i ne moze se vise promeniti

// neophodno napisati final i tip podatka, pa i ime

switch(x){

case IME_ZA_CASE_KOJE_IMA_SMISLA:

// neke naredbe

break;

ww

w.ra

jak

.rs

Page 32: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПЕТЉЕ

Предстваљају механизам за понављање

одређене групе операција докле год је неки

услов тачан

ww

w.ra

jak

.rs

Page 33: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

WHILE ПЕТЉА

while(uslov){

// radnje za ponavljanje

// dokle god je tacan uslov

}

x = 4;

while (x>0){

x = x – 1;

}

ww

w.ra

jak

.rs

Page 34: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

DO-WHILE ПЕТЉА

Прво се нешто одради, па се затим провери

услов да ли то треба урадити поново

do {

// radi nesto

} while(uslov);

// ako je tacan uslov, ponovi radnju

// ako nije tacan, kraj petlje

// idi dalje dole

int x = 9;

do {

System.out.println(“X je :” + x);

} while(x !=9);

// ipak se izvrsilo

// ali samo jednom

ww

w.ra

jak

.rs

Page 35: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

БРОЈАЧКА ПЕТЉА - FOR

Често неке радње морамо да поновимо одређен

број пута. Бројимо сваки пут када урадимо

нешто и проверимо да ли смо урадили то

довољан број пута.

Мисао која води рачуна о броју понављања се

зове бројач

У јави имамо for петљу, која:

Поставља бројач на почетну вредност (нпр 0)

Дефинише услов за проверу, колико се пута мора

поновити

Дефинише корак бројања

ww

w.ra

jak

.rs

Page 36: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

FOR ПЕТЉА

for (намештање бројача ; услов ; корак бројања){

// sta da se ponavlja

}

for (int i =0; i<10; i++){

System.out.println(“Sklek uradjen”);

}

ww

w.ra

jak

.rs

Page 37: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗОВИ (1)

Често имамо велики број променљивих које

имају заједничку улогу

Тада их групишемо у колекцију – низ – под

истим именом

Свака променљива је само један елемент у

низу и приступа јој се на основу њеног места у

низу – индекса

Индекс иде од 0 до бројЕлеменатаУНизу – 1

Оператор за приступ елементима низа су

средње заграде

imeNiza[indeksElementaKojiNamTreba]

ww

w.ra

jak

.rs

Page 38: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗОВИ (2)

Низ у Јави правимо навођењем типа елемената низа,

средњих заграда и имена низа и употребом оператора

new.

TIP_ELEM_NIZA[ ] imeNiza = new TIP_ELEM_NIZA [BR ELEM NIZA];

int[ ] x = new int [10] ; // niz x od 10 elemenata tipa int

double[] r = new double [20]; // niz r od 20 elemenata tipa double

ww

w.ra

jak

.rs

Page 39: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗОВИ (3)

Како пролазимо кроз цео низ?

Нећемо писати посебну наредбу за сваки елемент,

типа: x[0] = 4; x [1] =2; …

Видимо да се индекс низа мења правилно, за

1, користимо фор петљу и њен бројач као

вредност индекса низа:

for(int i=0; i<niz.length;i++){

niz[i] = 0;

}

length даје број елемената низа, сваки низ ово има у

себи

ww

w.ra

jak

.rs

Page 40: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗОВИ (4)

Дводименизонални низови

Уместо да имамо нпр 6 низова који се редом зову salter0,

salter1, salter2 и раде исто, чувају исте информације,

можемо направити

Дводимензионални низ - низ од 6 низова.

ред 0

колона 0

ИМЕ[ред] [колона]

ww

w.ra

jak

.rs

Page 41: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗОВИ (5)

Пролаз кроз дводимензионални низ:

Пролазимо прво кроз редове

Затим унутар једног реда идемо по свим колонама

i иде по редовима

ј по свим колонама неког реда

for(i=0; i<dvoDimNiz.length;i++){

for(j=;0j<dvoDimNiz[i].length;j++){ System.out.println(“dvoDimNiz[ i][j] = “+ dvoDimNiz[i][j]);

ww

w.ra

jak

.rs

Page 42: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СТРИНГОВИ – ТЕКСТ

У Јави се представљају преко класе String

Подразумевана класа – не морате је импортовати

Сложени тип – чим је класа – преко new се

конструише

У себи садржи ПОДАТКЕ и КОД

Подаци – текст

Код – операције за обраду текста

Page 43: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СТРИНГОВИ (1)

Представљају начин чувања и обраде текста у

нашим програмима

Сложеног су типа

String s = new String();

String s1 = “neki tekst”;

Scanner skener = new Scanner(System.in);

String s2 = skener.nextLine();

ww

w.ra

jak

.rs

Page 44: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СТРИНГОВИ (2)

Операције за обраду стригова – све операције

НЕ МОДИФИКУЈУ стринг над којим су

позване него праве нови стринг

Шта то значи?

String s = “ neki tekst”;

s.nekaOperacija(); // ne menja string s, vraca novi

//String, koji bi trebali da preuzmemo, npr

String s2 = s.nekaOperacija(); // ili ako zelimo bas s

//da modifikujemo

String s = s.nekaOperacija(); // s modifikovano,

//originalni tekst vise ne postoji, zamenjen sa onim //

//sto je nekaOperacija napravila

ww

w.ra

jak

.rs

Page 45: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРИМЕР 1 – ДЕКЛАРАЦИЈА И ИСПИС

СТРИНГА

Page 46: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

УНОС СТРИНГА

Page 47: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРИМЕР 3 : ОПЕРАЦИЈЕ СА

СТРИНГОВИМА

Page 48: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РЕЗУЛАТ ИЗВРШАВАЊА

Page 49: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОПЕРАЦИЈЕ СА СТРИНГОВИМА (1)

.trim() - уклања размаке са почетка и краја

стринга

.toUpperCase() – сва мала слова претвара у

велика

.toLowerCase() – сва велика слова претвара у

мала

.subString(odKogSlovaPoRedu) – направи нови

стринг од задатог слова по реду до краја

оригиналног стринга

.replace( „a, „b‟) – претражује стринг и замени

свако слово a са словом b

ww

w.ra

jak

.rs

Page 50: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОПЕРАЦИЈЕ СА СТРИНГОВИМА (1)

.startsWith(“nekiString”) – проверава да ли стринг над

којим је позвано почиње са текстом “nekiString”

.compareTo(neki drugi string ili “tekst”) – пореди

да ли су исти стринг над којим је позвана операција и стринг

унутар заграда,резултат операције је 0 ако су исти , различито од

0 ако нису исти

.compareToIgnoreCase(String str) - ради исто што и

претходна али игнорише разлике у великим и малим

словима

.length() – враћа дужину стринга, као цео број

.getCharAt(индекс) – враћа жељени знак из стринга на

задатој позицији

ww

w.ra

jak

.rs

Page 51: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОПЕРАЦИЈА СА СТРИНГОВИМА(3)

.split( “naOsnovuCega”) – прави низ стрингова,

делове оригиналног, подељеног на основу

стринга у заградама, пример:

String stringZaCepkanje = belo,zuto,crveno;

String[ ] delovi = stringZaCepkanje.split(“,”);

System.out.println(“delovi[0]”); // ispise belo

System.out.println(“delovi[1]”); // ispise zuto

System.out.println(“delovi[2]”); // ispise crveno

ww

w.ra

jak

.rs

Page 52: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

УВОД У ОБЈЕКТНО

ОСНОВНИ ПОЈМОВИ

ww

w.ra

jak

.rs

Page 53: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЛЕГО КОЦКИЦЕ – ГОМИЛЕ

ПРОМЕНЉИВИХ СВУДА У ПРОГРАМУ w

ww

.raja

k.rs

Page 54: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЗИД ОД ЛЕГО КОЦКИЦА – ПАКУЈЕМО И

СЛАЖЕМО ПРОМЕНЉИВЕ У НЕКУ ЦЕЛИНУ

ww

w.ra

jak

.rs

Page 55: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ТВРЂАВА ОД ЛЕГО КОЦКИЦА - ВИШЕ

ГОТОВИХ ЦЕЛИНА КОРИСТИМО ДА

НАПРАВИМО НЕШТО ДРУГО

ww

w.ra

jak

.rs

Page 56: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РЕШЕЊЕ СВИХ ПРОБЛЕМА НА СВЕТУ

АПСТРАКТНИ

АЛГОРИТАМ

УЛАЗ

ПРОБЛЕМ

ИЗЛАЗ

РЕШЕН ПРОБЛЕМ

ww

w.ra

jak

.rs

Page 57: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

МОДЕЛИРАЊЕ

Узимамо особине које су нам битне, запишемо

их и представимо променљивама одговарајућег

типа

Гледамо шта све треба од операција и то исто

запакујемо

ww

w.ra

jak

.rs

Page 58: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КЛАСА , ОБЈЕКАТ

КЛАСА СЛОЖЕНИ ТИП ПРОМЕНЉИВЕ

ОБЈЕКАТ ПРОМЕНЉИВА СЛОЖЕНОГ ТИПА

Лампа КЛАСА

Лампа л1 ОБЈЕКАТ КЛАСЕ ЛАМПА

ww

w.ra

jak

.rs

Page 59: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СВАКИ ОБЈЕКАТ ИМА СВОЈЕ СВОЈЕ

ПРОМЕНЉИВЕ И СВОЈЕ МЕТОДЕ!!!

Лампа л1

Њене променљиве!

Њене методе које се

извршавају само за

њу!!!!

Лампа л2

Њене променљиве!

Њене методе које се

извршавају само за

њу!!!!

ww

w.ra

jak

.rs

Page 60: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СВАКИ ОБЈЕКАТ ИМА СВОЈЕ ПРОМЕНЉИВЕ И

СВОЈЕ МЕТОДЕ!

КОЈЕ СЕ ИЗВРШАВАЈУ УНУТАР ОБЈЕКТА!

л2.ukljuci(); л1.iskljuci();

Лампа л2

укључена = false;

ukljuci(){

укључена = true;

}

Лампа л1

укључена =true;

iskljuci(){

укључена = false;

}

ww

w.ra

jak

.rs

Page 61: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КЛАСА ЈЕ ШАБЛОН ПО КОМ СЕ ПРАВЕ

ОБЈЕКТИ!

Метода се извршавају над објектом!

Променљиве које сте навели у класи

постоје тек сада се направи објекат те

класе и те променљиве су само његове!!!!!

Сваки објекат има своје променљиве!

Свака метода се позива над објектом и ради СА

ПРОМЕНЉИВИМА СВОГ ОБЈЕКТА!

ww

w.ra

jak

.rs

Page 62: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОНТРУКТОР ЈЕ МЕТОДА КОЈА

ДЕФИНИШЕ ПОЧЕТНО СТАЊЕ ОБЈЕКТА

У објектима, постоје default вредности за

променљиве:

int 0

double 0.0

boolean false

Сваки сложени тип (null) – нема објекта само

декларација стоји, нема new

Ако Вам не одговарају стандардне

подразумеване вредности можете сами рећи

које су тако што напишете КОНСТРУКТОР

ww

w.ra

jak

.rs

Page 63: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОНТРУКТОР

Контруктор је метода унутар које намештате

подразумеване вредности променљивих унутар

објекта.

Конструктор се зове исто као и класа.

Конструктори се позивају приликом употребе

оператора new

Можемо имати више од једног конструктора

(различитих!)

ww

w.ra

jak

.rs

Page 64: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ВИШЕ КОНСТРУКТОРА?

Методе се у Јави (као и свим објектно

оријентисан језицима) не идентификују

јединствено само преко имена, већ и броју и

типу параметара!

Ово су 3 различите методе:

metoda1()

metoda1(int k)

metoda1(int k, int k1, double d2)

ww

w.ra

jak

.rs

Page 65: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КАКО ЈАВА ЗНА КОЈУ МЕТОДУ ТРЕБА

ПОЗВАТИ АКО СЕ ИСТО ЗОВУ?

На основу параметара које сте задали позиву

Пример:

metoda1()

metoda1(int k)

metoda1(int k, int k1, double d2)

objekat.metoda1();

objekat.metoda1(2);

objekat.metoda1(1,2,3.4);

ww

w.ra

jak

.rs

Page 66: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОНСТРУКТОР ЈЕ ИСТО МЕТОДА!

Тако да ако их има више, при позиву ће се одлучити

који конструктор треба позвати.

Пример:

Scanner skener = new Scanner ();

Scanner skener = new Scanner(System.in);

Lampa l = new Lampa(); // pocetno stanje - ukljucena

Lampa l2 = new Lampa(false); // pocetno stanje - iskljucena

ww

w.ra

jak

.rs

Page 67: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО-ОРИЈЕНТИСАНО

ПРОГРАМИРАЊЕ

-ПОДСЕТНИК

-РЕЧНИК ПОЈМОВА

ww

w.ra

jak

.rs

Page 68: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО – ОРИЈЕНТИСАНО

ПРОГРАМИРАЊЕ (1)

Бавимо се моделирањем – прављењем модела –

упрошћене дефиниције неких предмета

Представљамо стање и понашање неког предмета

СТАЊЕ – се представља подацима, нпр

boolean ukljucen = true;

ПОНАШАЊЕ – се представља методама – делови

кода који врше неке операције pevaj() {

System.out.println(“la la la la –la - la do re mi fa si la si do”)

}

ww

w.ra

jak

.rs

Page 69: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО – ОРИЈЕНТИСАНО

ПРОГРАМИРАЊЕ (2)

Модел неког предмета правимо уз помоћ класе

На основу класе правимо објекте – променљиве

сложеног типа

Класа представља шаблон по ком се праве

објекти

Објекти се разликују међусобно по

вредностима – СТАЊУ у ком су и или имену,

док сви имају ИСТЕ МЕТОДЕ

ww

w.ra

jak

.rs

Page 70: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО – ОРИЈЕНТИСАНО

ПРОГРАМИРАЊЕ (3)

Методе

Јесу операције које објекти неке класе могу да изврше

Да бих их написали, потребно је дефинисати:

ПРАВО ПРИСТУПА (public, private, protected)

ДА ЛИ МЕТОДА ВРАЋА НЕКИ ПОДАТАК на месту где је

позвана?

Ако враћа морамо написати који је тип информације коју

враћа, ако не враћа напишемо void

ИМЕ ЗА МЕТОДУ

ЗАГРАДЕ( УНУТАР ЗАГРАДА ЛИСТА ПАРАМЕТАРА

КОЈИ СЕ МОРАЈУ ЗАДАТИ ПРИ УПОТРЕБИ МЕТОДЕ )

Мора се навести тип и име параметра

ww

w.ra

jak

.rs

Page 71: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

МЕТОДЕ

Методе су дакле блокови кода, под неким именом, који раде нешто смислено.

Методе могу да након што се изврше, на месту где су позване врате неку вредност.

Методу објекта дефинишемо тако што наводимо: Право приступа методи:

public, private, protected (public = може да се користи, private = интерна)

Какав тип податка враћа метода? Ако не враћа ништа, тип је void

Име методе, као променљиве Као и код именовања променљивих, први карактер, мора бити слово, не

могу размаци, мора да буде једна реч, дозвољени бројеви и доња црта

Параметри операције (ако их има) Наводе се унутар загради након имена операције

Неопходно је навести ког су типа параметри и дати им име

Параметри су променљиве, могу бити простог и сложеног типа

Код који метода извршава унутар витичастих заграда { }

ww

w.ra

jak

.rs

Page 72: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

МЕТОДЕ – ПОЗИВ МЕТОДЕ

Методе се позивају над објектима неке класе

Класа објекта је заправо ТИП променљиве

NekaKlasa objekat = new NekaKlasa();

objekat.metoda(4,999, “full”, true);

Унутар класе имамо написану ову методу и она

изгледа овако: public void metoda(int par1, int par2, String par3, boolean par4){

}

ww

w.ra

jak

.rs

Page 73: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ШТА СЕ ДЕШАВА ПРИ ПОЗИВУ МЕТОДЕ?

Вредности наведене унутар заграда се

копирају у параметре методе

objekat.metoda(4,999, “full”, true);

public void metoda(int par1, int par2, String par3, boolean par4){

// sada se ovde moze uraditi nesto korisno sa parametrima

System.out.println(“parametar1 je:” + par1);

if(par4){

System.out.println(“Par4 je true i to utice na logiku na neku nacin!”

}

}

ww

w.ra

jak

.rs

Page 74: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРАВЉЕЊЕ КЛАСЕ

public class ImeKlase{

// PISEMO PROMELJIVE – POLJA KLASE

// promenljive klase cesto zovemo poljima klase

// PISEMO METODE

}

public class Lampa{

private boolean ukljucena;

private boolean ispravna;

public void ukljuci(){ ukljucena = true;

System.out.println(“Lampa ukljucena!”);

}

}

ww

w.ra

jak

.rs

Page 75: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

УПОТРЕБА КЛАСЕ

Наводимо њен тип и име и користимо new

Lampa p = new Lampa();

P.ukljuci();

ww

w.ra

jak

.rs

Page 76: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СПЕЦИЈАЛНЕ МЕТОДЕ КЛАСА

У класама се често јављају поједине методе

које имају исту сврху у свакој класи

Конструктор

Дефинише које су то почетне – default вредности за

поља објеката наше класе – односно

ДЕФИНИШЕМО ПОЧЕТНО СТАЊЕ за СВАКИ

објекат ове класе

ww

w.ra

jak

.rs

Page 77: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОНТРУКТОРИ (1)

Нпр. Default стање за објекте класе лампа је да су искључене и исправне

Написаћемо конструктор у ком ћемо дефинисати почетно стање

Конструктори су методе које носе исто име као и класа којој припадају

Конструктор класе лампа:

public Lampa() { ukljucena = false;

ispravna = true; }

ww

w.ra

jak

.rs

Page 78: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КОНСТРУКТОРИ (2)

Овим смо дефинисали да сваки објекат класе

Lampa ће када се направи, бити искључен и

исправан.

Lampa la = new Lampa(); /

Лампа la је искључена и исправна.

ww

w.ra

jak

.rs

Page 79: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРАВЉЕЊЕ РАЗЛИЧИТИХ КОНСТРУКТОРА

ww

w.ra

jak

.rs

Page 80: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

УПОТРЕБА МЕТОДА ИСТОГ ИМЕНА w

ww

.raja

k.rs

Page 81: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

АНАЛИЗАТОР - КОД w

ww

.raja

k.rs

Page 82: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО – ОРИЈЕНТИСАНО

Оријентисано ка објектима, зашто?

Зато што се ради са објектима, тежи се да све буде

неки објекат

Шта је објекат?

Објекат је променљива сложеног типа који је

посебни дефинисан уз помоћ класе

Уз помоћ класе се дефинишу сложени типови –

шаблони по ком се праве објекти

ww

w.ra

jak

.rs

Page 83: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТИ

За разлику од простих типова променљивих (

int, double, boolean, char) , сложени типови

осим података, у себи имају и операције –

методе – програмски код који може да се

изврши

Цртамо их често облачиће, јер им је

унутрашња структура сложена.

Објекат 1

Објекат 3

Објекат 2

ww

w.ra

jak

.rs

Page 84: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

РАДНА (ОПЕРАТИВНА, РАМ) МЕМОРИЈА

РАЧУНАРА

Организована је као низ локација – блокова –

најчешће величине 4 бајта (32 бита, 8 бита је 1

бајт, 1 бит је једна јединица или нула)

Када у нашем програму декларишемо неку

променљиву, додељује нам се блок меморије за

њу под њеним именом.

ww

w.ra

jak

.rs

Page 85: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ДЕКЛАРАЦИЈЕ ПРОМЕНЉИВЕ ЗАУЗИМА ПРОСТОР У

РАДНОЈ МЕМОРИЈИ – ПРОМЕНЉИВА ПОСТОЈИ

ww

w.ra

jak

.rs

Page 86: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЗОНЕ РАДНЕ МЕМОРИЈЕ ЗА ПОДАТКЕ

ПРОГРАМА

Постоје две зоне радне меморије за

складиштење података програма:

Прва је статичка зона – сва меморија заузета у њој

остаје заузета од почетка до краја рада програма

Друга је динамичка зона – меморија заузета у овој

зони се може у било ком тренутку ослободити у

току рада програма

ww

w.ra

jak

.rs

Page 87: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ЗАУЗИМАЊЕ МЕМОРИЈЕ ЗА ОБЈЕКТЕ

Објекти (променљиве сложеног типа) се састоје од два дела:

Имена – референце на њих – стоје у статичкој зони

РЕФЕРЕНЦА = ИМЕ ОБЈЕКТА

Блока меморије заузетог у динамичкој зони меморије

ww

w.ra

jak

.rs

Page 88: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ДЕКЛАРАЦИЈА РЕФЕРЕНЦЕ

Scanner skener;

ПРАВИМО НЕКИ ОБЈЕКАТ класе Скенер

new Scanner(System.in);

ДОДЕЉУЈЕМО ИМЕ ОБЈЕКТУ ТАКО ШТО

КАЖЕМО

РЕФЕРЕНЦА = НАПРАВЉЕНИ ОБЈЕКАТ

skener = new Scanner(System.in);

ww

w.ra

jak

.rs

Page 89: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОДУЗИМАЊЕ РЕФЕРЕНЦЕ ОБЈЕКТУ

Када име skener доделимо новом објекту класе

Скенер, тада објекат кога смо направили

раније губи име – референцу

ОБЈЕКТИ КОЈИ

ИЗГУБЕ РЕФЕРЕНЦУ

СЕ АУТОМАТСКИ

УНИШТАВАЈУ

ww

w.ra

jak

.rs

Page 90: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ДИНАМИЧКА ЗОНА МЕМОРИЈА

Иако је као и статичка зона, направљена од низа

меморијских локација које су нам на располагању, само

што су величине блокова меморије које заузимамо

различитих величина и често нам није ни позната тачна

величина објекта.

Због тога се динамичка зона представља као нека

затворена фигура – квадрат, правоугаоник – на ком се

објекти цртају као облакчићи, јер се не зна колико

меморије заузимају, само знамо да су ту.

Динамичка зона се стручно зове ХИП (енг. Heap)

ww

w.ra

jak

.rs

Page 91: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ДИНАМИЧКА ЗОНА - ХИП

Објекат 1

Објекат 3

Објекат 2

ww

w.ra

jak

.rs

Page 92: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

УПОТРЕБА ОБЈЕКАТА

Пре него што можемо да употребимо објекат,

морамо декларисати референцу на њега (име)

и позвати наредбу new која ће наш објекат

направити на Хипу и нашу рефенцу уперити

на њега.

Објекти без референце се аутоматски

бришу са Хипа

ww

w.ra

jak

.rs

Page 93: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ДЕКЛАРАЦИЈЕ РЕФЕРЕНЦЕ НА ОБЈЕКАТ

КЛАСЕ СКЕНЕР

ww

w.ra

jak

.rs

Page 94: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ПРАВЉЕЊЕ ОБЈЕКТА НА ХИПУ И

ПОВЕЗИВАЊЕ РЕФЕРЕНЦЕ И ОБЈЕКТА

ХИП

објекат1

ww

w.ra

jak

.rs

Page 95: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОДУЗИМАЊЕ РЕФЕРЕНЦЕ ОБЈЕКТУ –

ПРЕУСМЕРАВАЊЕ РЕФЕРЕНЦЕ НА НЕКИ ДРУГИ

ОБЈЕКАТ

објекат1

објекат2

ХИП

ww

w.ra

jak

.rs

Page 96: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТИ БЕЗ РЕФЕРЕНЦИ СЕ УНИШТАВАЈУ –

БРИШУ СА ХИПА – ЗАУЗЕТА МЕМОРИЈА СЕ

ОСЛОБАЂА

објекат1

објекат2

ХИП

ww

w.ra

jak

.rs

Page 97: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОДУЗИМАЊЕ РЕФЕРЕНЦЕ ОБЈЕКТУ –

ПОСТАВЉАЊЕ РЕФЕРЕНЦЕ НА NULL

објекат1

ХИП

ww

w.ra

jak

.rs

Page 98: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТИ БЕЗ РЕФЕРЕНЦИ СЕ УНИШТАВАЈУ –

БРИШУ СА ХИПА – ЗАУЗЕТА МЕМОРИЈА СЕ

ОСЛОБАЂА

објекат1

ХИП

ww

w.ra

jak

.rs

Page 99: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКАТ И МЕТОДЕ

Сви објекти исте класе имају исте методе и

исте променљиве – поља .

Једино се разликују по конкретним вредностима

поља и својим референцама.

Методе се позивају над објектом, шта то значи?

Код методе је у објекту!

ww

w.ra

jak

.rs

Page 100: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СВАКИ ОБЈЕКАТ ИМА СВОЈЕ ПРОМЕНЉИВЕ И

СВОЈЕ МЕТОДЕ!

КОЈЕ СЕ ИЗВРШАВАЈУ УНУТАР ОБЈЕКТА!

л2.ukljuci(); л1.iskljuci();

Лампа л2

укључена = false;

ukljuci(){

укључена = true;

}

Лампа л1

укључена =true;

iskljuci(){

укључена = false;

}

ww

w.ra

jak

.rs

Page 101: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО ОРИЈЕНТИСАНО

ПРОГРАМИРАЊЕ

НИЗОВИ ОБЈЕКАТА

ww

w.ra

jak

.rs

Page 102: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗ ОБЈЕКАТА ИСТЕ КЛАСЕ

Било какав низ у Јави правимо на следећи

начин:

imeTipa [ ] imeNiza;

imeNiza = new imeTipa[BROJ_ELEMENATA];

Тако да низ од 20 елемената типа инт изгледа

овако:

int [ ] x;

x = new int [20];

ww

w.ra

jak

.rs

Page 103: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

НИЗ ОБЈЕКАТА ИСТЕ КЛАСЕ

Низ Скенера изгледа исто:

Scanner[ ] skeneri;

skeneri = new Scanner[200];

САМО ШТО, када направимо било који Скенер односно

објекат, мора да се уради new ImeTipa(); односно мора да се

позове конструктор за сваки објекат, било да је он елемент

низа или сам.

// pozivanje new Scanner(System.in) za svih 200 skenera

for(i=0;i<skeneri.length;i++){

skeneri[i] = new Scanner(System.in);

}

ww

w.ra

jak

.rs

Page 104: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ОБЈЕКТНО

ШТА ЖЕЛИМО ДА САКРИЈЕМО

И ЗАШТО?

ww

w.ra

jak

.rs

Page 105: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

АПСТРАКЦИЈА

Апстраховати:

најопштије: одвојити нешто од нечега, оставити

нешто по страни, не обратити пажњу на нешто;

нешто уже: оставити по страни оно небитно,

споредно, случајно, задржавајући оно битно и

опште.

Апстракција:

радња којом изостављамо појединачно,

случајно, споредно, а задржавамо опште,

битно, нужно, важно.

ww

w.ra

jak

.rs

Page 106: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

АПСТРАКЦИЈА

ПРАКТИЧНА РЕАЛИЗАЦИЈА- КАЛКУЛАТОР

ИНТЕРФЕЈС ДУГМИЋИ

КОЈИМА СЕ КОРИСТЕ

ОПЕРАЦИЈЕ КАЛКУЛАТОРА

ТЕЛО

КАЛКУЛАТОРА

СВЕ ШТО ОНОГА КО КОРИСТИ

КАЛКУЛАТОР НЕ ЗАНИМА

КАКО ИЗВРШАВА ОПЕРАЦИЈЕ,

ПРИКАЗУЈЕ РЕЗУЛТАТ

ЛОГИКА РАДА КАЛКУЛАТОРА

АПСТРАКЦИОНА БАРИЈЕРА

ww

w.ra

jak

.rs

Page 107: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

СКРИВАЊЕ ИНФОРМАЦИЈА – МЕТОД

АПСТРАКЦИЈЕ

Прављење црних кутија

Сакрити начин имплементације /

функционисања кода

Обезбедити начин употребе готовог кода тако

да не захтева разумевање кода

ww

w.ra

jak

.rs

Page 108: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

МЕТОД АПСТРАКЦИЈЕ У ЈАВИ –

КОНТРОЛА ПРИСТУПА

Када пишемо класу, уз сваку променљиву и методу

дефинишемо и контролу приступа

Ко може да користи ову променљиву/методу?

public – свако

private – само методе класе, односно ми који пишемо класу

• Шта треба сакрити?

• У теорији би требало увек сакрити све податке – променљиве

класе - њена поља - варира у пракси ( length код низова)

• Интерну логику, неке методе које нису за употребу од стране

клијента

ww

w.ra

jak

.rs

Page 109: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КЛАСА

ОПЕРАЦИЈЕ И ПОДАЦИ

ПОДАЦИ

ОПЕРАЦИЈЕ

увећајХЗа(1)

true Х

ww

w.ra

jak

.rs

Page 110: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

МОДЕЛ КАЛКУЛАТОРА

Може да ради само са 2 операнда

Само основне операције

Након извршавања операције, резултат се

испише на конзолу

ww

w.ra

jak

.rs

Page 111: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КАЛКУЛАТОР – УПОТРЕБА

ww

w.ra

jak

.rs

Page 112: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КАЛКУЛАТОР – ОПЕРАЦИЈЕ w

ww

.raja

k.rs

Page 113: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

КАЛКУЛАТОР – ИСПИС И ЛОГИКА w

ww

.raja

k.rs

Page 114: Објектно-оријентисано програмиранјеrajak.rs/kurs_Jave/JAVA_PRVI_DRUGI_MESEC.pdf · Оператор - , умањеник (онај од кога се

ТРОМЕСЕЧНИ КУРС ЈАВЕ

ПРЕГЛЕД ПОЈМОВА УТИСЦИ? ПИТАЊА?

ШАЉИТЕ НА

[email protected]

ww

w.ra

jak

.rs