Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


Java programiranje za srednju školu, Skripte od Java programiranje

Objektno orjentisano programiranje

Tipologija: Skripte

2018/2019

Učitan datuma 09.03.2019.

4k45h4
4k45h4 🇧🇦

4.8

(4)

1 dokument

1 / 15

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
Test 1
1. Da bi se neki Java program pokrenuo na određenom računaru, na tom računaru mora postajati
JRE Java Runtime Environment
2. Koje uvjetne naredbe Java poznajete: if..else, switch.....case
3. kakva je apstraktna, a kakva zapečećena motoda?
- apstraktna klasa se ne može koristiti za instanciranje objekata. Može se naslijediti. Ukoliko
klasa implementira neko sučelje ali ne implementira sve metode sučelja, tada mora biti
označena s abstract.
- final zapečećena klasa se ne može naslijediti. Može se instancirati objekat ove klase.
4. JDK omogućuje razvoj Java programa i mora postojati na računaru na kojem pišemo program ili
pokrećemo program
5. Enkapsulacija (učahurenje) se postiže određivanjem vidljivosti varijabli i metoda neke klase. Ko
ima pristup ovim varijablama i metodama ako je njivoa vidljivost:
- osnovna (nije navedena): samo klasama iz njenog paketa
- Public: svim ostalim klasama
6. Navedite faze koje se prolaze od pisanja Java programa do njegovog izvršavanja (poketanja):
- izvorni kôd programa piše se u izabranom
editoru (.java)
- sintaksičku provjeru izvornog programa
provodi Java kompajler (prevodilac) i generiše
datoteku bytecode-a (.class)
- interpreter izvršava program iz bytecode-a.
7. Prvobitno ime programskog jezika Java je: OAK
8. Navedite barem jednu razvojnu okolinu koja se koristi za razvoj Java programa:NetBeans,
Eclipse
9. Komentarišite
10. Navedite naziv i oznaku za barem 4 Java operatora:
- Logički AND &&
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Delimični pregled teksta

Preuzmite Java programiranje za srednju školu i više Skripte u PDF od Java programiranje samo na Docsity!

Test 1

  1. Da bi se neki Java program pokrenuo na određenom računaru, na tom računaru mora postajati JRE – Java Runtime Environment
  2. Koje uvjetne naredbe Java poznajete: if..else, switch.....case
  3. kakva je apstraktna, a kakva zapečećena motoda?
    • apstraktna klasa se ne može koristiti za instanciranje objekata. Može se naslijediti. Ukoliko klasa implementira neko sučelje ali ne implementira sve metode sučelja, tada mora biti označena s abstract.
    • final – zapečećena klasa se ne može naslijediti. Može se instancirati objekat ove klase.
  4. JDK omogućuje razvoj Java programa i mora postojati na računaru na kojem pišemo program ili pokrećemo program
  5. Enkapsulacija (učahurenje) se postiže određivanjem vidljivosti varijabli i metoda neke klase. Ko ima pristup ovim varijablama i metodama ako je njivoa vidljivost:
    • osnovna (nije navedena): samo klasama iz njenog paketa
    • Public: svim ostalim klasama
  6. Navedite faze koje se prolaze od pisanja Java programa do njegovog izvršavanja (poketanja):
    • izvorni kôd programa piše se u izabranom editoru (.java)
    • sintaksičku provjeru izvornog programa provodi Java kompajler (prevodilac) i generiše datoteku bytecode-a (.class)
    • interpreter izvršava program iz bytecode-a.
  7. Prvobitno ime programskog jezika Java je: OAK
  8. Navedite barem jednu razvojnu okolinu koja se koristi za razvoj Java programa: NetBeans, Eclipse
  9. Komentarišite
  10. Navedite naziv i oznaku za barem 4 Java operatora:
    • Logički AND &&
  • Jednakosti == !=
  • Relacioni <> <= >=
  • Pridruživanja = + = - * /
  1. Šta je klasa, a šta objekat:
  • Klasa je složeni korisnički definisani tip podataka, klasa je predložak (šablon) objekta
  • Objekat je instanca (konkretizacija) klase
  1. Prilikom izvršavanja Java programa poziva se kompajler/interpreter koji izvršava Java program iz binarnog /byte koda pomoću Java Virtual Machine
  2. Interfejs sadrži uglavnom samo potpise metoda , kada se implementira u klasu, onda se u toj klasi moraju implementirati sve metode
  3. Šta je nasljeđivanje Kakvo je to nasljeđivanje specijalizacijom
  4. Koje OO osobine podržava programski jezik Java
  • Preklapanje metoda – overloading
  • Nasljeđovanje – inheritance
  • Učahurenje – encapsulation
  • Nadječavanje metoda - overriding
  1. Zašto kažemo da funkcionisanje Jave predstavlja mješavinu interpretiranog i prevednog izvršavanja: Prevodi se izvorni kod u bytcode, a zatim se bytcode interpretira u određeni mašinski kod.
  2. Iz koja dva razloga su tvorci Jave nastojali da Java bude srodna sa jezicima C i C++
  • Već upoznati sa sintaksom c i c++
  • Preuzeli najbolje iz c i c++ i dodali nove mogućnosti
  1. U čemu su se prvobitno razlikovale JSE i JEE, a u čemu su dans slične
  2. Da bi se znalo da neka klasa nasljeđuje drugu klasu koriste se ključne riječi STATIC Jedna klasa može nasljediti koliko drugih klasa
  3. Šta se nalazi u datoteci.java a šta u datoteci .class **-.java sadrži izvorni kod programa
  • .class sadrži datoteku bytecode-a**

Java – Kolekcije (Collections) Razlika između niza i kolekcije • Niz je tip podatka koji u

sebi sadrži skup drugih podataka. •Pri tom, niz može da primi samo podatke jednog tipa i to

samo onoliki broj podataka, koliki je naznačen prilikom inicijalizacije niza. •Nije moguće

promijeniti veličinu niza nakon njegove inicijalizacije i nije moguće u njega smještati različite

tipove podataka. •Ovi nedostaci prevazilaze se drugačijim pristupom, koji podrazumijeva jedan

objekat koji u sebi sadrži druge objekte uzajamno povezane referencama. Ovo omogućuje

jednostavnu manipulaciju strukturom, jer veoma lako možemo izbaciti objekat iz liste, tako što

ćemo skinuti referencu na njega, dodati drugi objekat i postaviti referencu na njega. •Pored toga,

ovakva struktura, s obzirom da je objektna, biće smještena u dinamički dio memorije (heap) i

zbog toga nećemo biti ograničeni veličinom ove strukture. Kolekcije, pored toga što služe za

smještanje podataka, također pružaju mogućnost i za pristupanje i manipulaciju podacima.

Paket java.util koji predstavlja jedan od osnovnih ugrađenih paketa u programskom jeziku

Java sadrži jedan od najmoćnijih Javinih podsistema: The Collection Framework.

kolekcije ne mogu sadržavati duplirane ključeve. Neke od implementacija ovakve kolekcije su:

HashMap, HashTable, TreeMap i LinkedHashMap.

Queue predstavlja strukturu poznatiju kao FIFO (First In First Out). Elementi koji su

prvi ubačeni u ovakvu kolekciju prvi se i uklanjaju iz nje. Ovo je jedna struktura identična

strukturi reda u čekaonici u realnom životu.

List

java.util.* (ovaj paket je neophodan za sva četiri prethodno pomenuta tipa).

ArrayList myList = new ArrayList();

- u dodajemo na sljedeći način:

myList.add("Moje"); myList.add("ime"); myList.add("je...");

putem niza.

List na određenoj poziciji, koristimo metodu get.

kao parametar metodi get ćemo proslijediti broj 1:

System.out.println(myList.get(1));

iz liste, koristimo metodu remove:

myList.remove(1); Nakon izvršenja ove naredbe, lista će sadržavati dva elementa koji će se

ponovo sortirati, tako da će biti pozicionirani na sljedeći način:

0: Moje 1: je...

U slučaju niza, nakon slične intervencije niz bi izgledao ovako:

0: Moje 1: 2: je...

List

ubacivanja, brisanja i pronalaženja novih članova , postoji još nekoliko veoma bitnih

funkcionalnosti koje svaka lista posjeduje.

for(int i=0;i<myList.size();i++) System.out.println(myList.get(i));

(prolazak) kroz listu možemo izvršiti i na sljedeći način. Ovaj način (for-each) je

efikasan kada je potrebno izlistati sve članove liste, ali nije koristan ukoliko želimo da vršimo

neke ozbiljnije intervencije na njoj jer ne eksponira iterator (brojač): for(String s : myList)

System.out.println(s);

ArrayList myList = new ArrayList(); myList.add("Moje"); myList.add("ime");

myList.add("je..."); myList.add(123); for(Object s : myList) System.out.println(s);

Primjer će, bez problema, obraditi sve priložene vrijednosti, iako postoji razlika u tipovima. Ovo

je moguće pošto kolekcija sve elemente pretvara u objekat prilikom smještanja, a prilikom

ekstraktovanja ih opet vraća u prvobitni tip. Ovo se naziva Boxing (pretvaranje u objekat) i

Unboxing (vraćanje u prvobitni tip).

Često je potrebno provjeriti da li lista sadrži neku vrijednost. Ovo je, naravno, moguće izvesti

ručno:

for(String s : myList) if(s.equals("ime")) System.out.println("Vrijednost postoji!");

Ali, List interfejs sadrži i metodu ( contains) koja obavlja ovaj posao i vraća vrijednost tipa

boolean:

System.out.println(myList.contains("ime")); //ispisat će true

Listu je, u svakom trenutku, moguće konvertovati u niz.

String[] niz = new String[myList.size()];

for(int i=0;i<myList.size();i++) niz[i]=myList.get(i);

Ili uz pomoć metode toArray: String[] niz = myList.toArray(new String[myList.size()]);

. myList.clear();

Map

To je niz parova : ključ i vrijednost , odnosno asocijativni niz.

objekat izuzetka (exception object ) i on sadrži informacije o samoj greški, koje obuhvataju tip greške i stanje programa u trenutku kada se greška dogodila.

izuzetka ( throwing an exception).

pokušava da pronađe dio koda koji će izvršiti obradu nastalog izuzetka.

hvatanje.

Ukoliko se niti u jednoj metodi ne pronađe kod za obradu nastalog izuzetka, izuzetak završava u virtuelnoj mašini.

  • a u ovoj situaciji prekida izvršavanje aplikacije i prikazuje poruku izuzetka, odnosno greške. Ukoliko pokrenemo kod iz gornjeg primera, možemo vidjeti proizvedenu grešku:

Obrada izuzetaka

-catch.

public static void main(String[] args) {

int brojevi[] = new int[4];

try

{

brojevi[7] = 10;

}

catch (Exception exc)

{

System.out.println("Index izvan okvira!");

}

}

Index izvan okvira!

predstavlja blok u kome se nalazi kod koji će tu grešku obraditi.

parametar Exception tipa. Exception klasa je osnovna klasa izuzetka i izuzetak ove klase u parametru će biti uvek uhvaćen.

blokova, postoji i treći blok, koji se naziva finally. Ovaj blok se izvršava svaki put, bez obzira na ishod prethodnih blokova. U njemu se, obično, nalaze sistemi za zatvaranje resursa (zatvaranje toka, konekcije sa bazom i sl.).

Korištenje bloka finaly

•Ponekad želimo da definišemo blok koda koji će se izvršiti kada try/catch blokovi završe sa svojom logikom.

•Npr., kada dođe do pojave izuzetka u metodi koja rukuje mrežnom konekcijom, doći će do toga da konekcija ostane otvorena, što može izazvati razne probleme. Ovakav problem lako se može riješiti upotrebom finally bloka, koji se može iskoristiti da se u okviru njega riješe slične situacije.

•Prethodni primjer sa dodatkom finally bloka bi izgledao ovako:

Finally blok izvršiće se u svakoj situaciji kada izvršavanje programa napusti try/catch blok.

Java - Uvod u rad sa bazama podataka

Baza podataka (database ili skraćeno DB ) predstavlja organizovanu kolekciju podataka. Iako postoje mnogi tipovi baza podataka (hijerarhijske, objektno orijentisane, relacione), relacione baze podataka, koje organizuju podatke u tabele sa međusobnim povezanostima (relacijama) su najzastupljenije.

zasebnih virtuelnih mašina.

Kod ugrađenog (embedded) okruženja sam engine baze podataka izvršava se u okviru iste JVM-a kao i aplikacija.

aplikacije sa jednim korisnikom, a sama baza podataka je praktično nevidljiva za krajnjeg korisnika, pošto je startovana i zaustavljena od strane same aplikacije i ne zahtijeva praktično nikakvu administraciju.

desktop aplikacije. Baza podataka ima samo jednog korisnika. Na korisnika se ovdje misli na samu aplikaciju. mbedded) u samu aplikaciju, jedino ta aplikacija imat će mogućnost pristupa bazi podataka.

Embedded korištenje baze podataka:

Ovakav scenario je nekada posebno poželjan, pošto će možda aplikacija koju razvijamo upravo zahtijevati ovakvu bazu, pa bi korištenje komplikovanih klijent/server okruženja nepotrebno zakomplikovalo cijeli sistem, jer bi bilo potrebno na računaru korisnika instalirati bazu podatka i baviti se njenom administracijom.

Java DB za upravljanje bazama podatka ili DBMS (Database Management System).

Management System).

Server, SQLite, Apache Derby, Oracle RDBMS.

Wikipedia i mnogi drugi.

Java DB

programerima omogućilo da testiraju napisani JDBC kod.

-vog open- source projekta pod nazivom Derby.

  • u i karakteriše ga veoma malo zauzeće memorije (oko 2MB).

klijent/server okruženju.

U okviru NetBeans razvojnog okruženja postoji GUI (grafičko korisničko okruženje) za upravljanje JAVA DB bazama podataka.

Tabele se mogu dodati korištenjem SQL upita ili kroz GUI, gdje će na osnovu našeg unosa okruženje izgenerisati odgovarajući SQL upit.

•Da bismo samostalno unijeli SQL upit možemo odabrati opciju Execute Command.

Da bismo kreirali našu tabelu potrebno je napisati SQL upit:

CREATE table USERS (ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), USERNAME VARCHAR(30), PASSWORD VARCHAR(30)

.

JDBC

rojekat, tj. Java aplikaciju u kojoj ćemo se povezati na kreiranu bazu i izvršiti osnovne operacije.

korisiti se JDBC (Java Database Connectivity) API.

se koristi kako bi se obavile različite operacije nad podacima u bazi, tj. kako bi se izvršile mnogobrojne SQL naredbe kojima se manipuliše podacima.

(RDBMS), on se može koristiti i za komunikaciju i sa bazama smještenim u okviru fajla.

Prije bilo kakvog rada sa bazom podataka, potrebno je uspostaviti konekciju.

java.sql.DriverManager i interfejs javax.sql.DataSource :

Manager omogućuje aplikaciji da se konektuje na bazu podataka korištenjem URL-a

  • a koji želimo da koristimo.

tatement(), prepareStatement() i prepareCall() koje redom vraćaju : Statement, PreparedStatement i CallableStatement.

Statement i ResultSet

ja je najlakša za dobijanje Statement instance.

naredbe) glasi:

Statement i ResultSet

public static void main(String[] args) {

try (Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/test_database", "test_user", "123");)

{

Statement stInsert = conn.createStatement();

stInsert.execute("insert into users (username,password) values ('myUserName','myPassword')");

Statement stSelect = conn.createStatement();

ResultSet rs = stSelect.executeQuery("select * from users");

while (rs.next()) {

System.out.println("User:");

System.out.println("Username: " + rs.getString("username"));

System.out.println("Password: " + rs.getString("password"));

System.out.println("\n");

}

} catch (SQLException ex) {

System.out.println("Error in database connection: \n" + ex.getMessage());

}

}

Statement i ResultSet

1.Kreiranje konekcije na bazu podataka.

2.Kreiranje Statement objekta sa nazivm stInsert i korištenjem metode execute izvršena SQL naredba za unos podataka u bazu.

3.Nakon ubacivanja podataka u bazu, kreiran je novi objekat tipa Statement sa nazivom stSelect, a zatim je korištenjem metode executeQuery, izvršena SQL naredba za dobavljanje zapisa iz baze. Ova metoda vraća ResultSet objekat u okviru koga će se nalaziti pročitani zapisi.

4.Za čitanje zapisa iz ResultSet objekta koristi se jedna while petlja, a za provjeru dostupnosti pročitanih polja iz baze koristi se metoda next, koja vraća true ili false u zavisnosti od postojanja sljedećeg zapisa.

5.Prilikom čitanja podataka iz ResultSet, koriste se metode za specifične tipove podataka. Na ovaj način vrši se mapiranje podataka iz baze u tip podataka podržan u Java jeziku.

CallableStatement

•CallableStatement predstavlja najspecijalizovaniji od pomenuta tri interfejsa.

•Koristi se za izvršavanje SQL stored procedura.