2_klase I Objekti

  • Uploaded by: Nikola Nojic
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 2_klase I Objekti as PDF for free.

More details

  • Words: 1,786
  • Pages: 57
Loading documents preview...
KLASE I OBJEKTI Dr Nenad Jovanovid FTN, 2010. godina

 Java je objektno orijentisan jezik  Program napisan u Javi se sastoji od objekata  Objekti su primerci klasa koje predstavljaju osnovne projektne elemente Java programa  Klase su logička apstrakcija, a objekti su fizička realnost

Definicija klase  Klasa predstavlja osnovnu organizacionu jedinicu koja omugudava implementaciju koncepata OOP  Klasa predstavlja šablon koji omogudava kreiranje višestrukih objekata sa sličnim karakteristikama

 Klase predstavljaju sve karakteristike jednog posebnog niza objekata odnosno, skup objekata sa istim svojstvima  Klasa objekata predstavlja model klase entiteta koji obuhvata objekte sa istom strukturom i ponašanjem

 Klase mogu biti: • Nezavisne jedna od druge • Prema odnosu nasleđivanja: podklasa/nadklasa • Prema tipu (interfejs)  Klase su grupisane u pakete: • Paket sadrži kolekciju logički povezanih klasa

Deklarisanje klase  Klasa se deklariše korišdenjem ključne reči class, davanjem imena klasi i navođenjem članova klase između vitičastih zagrada  Deklaracija klase određuje kog je tipa: • Identifikator u deklaraciji klase određuje ime klase • Opciono extends ukazuje na nadklasu. • Opciono implements lista nazive svih interfejsa koje klasa implementira

Ime klase  Imena klase počinju velikim slovom i svaka naredna reč u imenu klase počinje velikim slovom.  Imena primeraka klase (objekata) počinju malim slovom, a svaka nova reč u imenu objekta počinje velikim slovom

Ključna reč class Ime klase

Ovde se definišu Članovi klase

Članovi klase  Klasa može da sadrži tri vrste članova • Polja • čine strukturu podataka objekta • definišu stanje objekta

• Metode • sadrže izvršni kod • definišu ponašanje objekta

• Ugnežđene klase i intefejse

Modifikatori klasa  Deklaraciji klase mogu prethoditi modifikatori klasa koji daju određena svojstva nekoj klasi • public, njoj može pristupiti bilo koji Java kod koji može da pristupi njenom paketu. • abstarct, klasa se smatra apstraktnom ukoliko je barem jedan metod deklarisan kao apstraktan. • final, ne dozvoljava nasleđivanje, tj. podklase

Komentari  // Komentar

Zanemaruju se znakovi do kraja reda.

 /* Komentar */

Zanemaruju se svi znakovi između oznaka /* i */.

 /** Komentar */

Dokumentacioni komentari.

class Osoba{ // Ovde treba definisati clanove klase /* Clanovi klase mogu biti polja i metode */ }

Polja  Klasne promenljive se zovu polja  Deklaracija polja se satoji od imena tipa iza koga sledi ime polja i, opciono, inicijalna vrednost za polje  Deklaraciji polja mogu prethoditi modifikatori: • Modifikatori pristupa (public, private, protected) • static • final

PROMENLJIVE  Promenljive su osnovna jedinica za čuvanje vrednosti u Javi.  Promenljiva se definiše kombinacijom identifikatora, tipa i po želji početne vrednosti.  U Javi se sve promenljive moraju pre upotrebe deklarisati. Evo osnovnog oblika deklarisanja promenljive:

tip identifikator [=vrednost],[,identifikator[=vrednost] …];  Tip je jedan od Javinih jednostavnih tipova ili ime klase, odnosno interfejsa.  Identifikator je ime promenljive. Identifikatori su tekstualni stringovi koji predstavljaju promenljive, metode, klase ili labele. Identifikatori ne mogu počinjati sa ciframa i ne mogu nositi isti naziv kao rezervisane reči.

case-sensitive  Java je osetljiva na mala i velika slova: • imeprezime, imePrezime, Imeprezime, ImePrezime su četiri različita identifikatora.

 Konvencije: • Paketi: sva mala slova • ziroracun

• Klase: početna slova reči su velika • ZiroRacun

• Metod/polje: početno slovo je malo, a naredne reči počinju sa velikim slovima • ziroRacun

• Konstante: sva su velika slova • ZIRO_RACUN

TIPOVI PODATAKA  Svaka promenljiva mora da ima tip podataka.  Java operiše sa dve vrste tipova podataka: • primitivnim tipovima i • objektima.

 U Javi je definisano osam primitivnih tipova podataka, koji se mogu svrstati u četiri grupe: • Celi brojevi (integer) –byte, short, int i long; • Brojevi u pokretnom zarezu (floating point) –float i double; • Znakovi (character) –char - namenjen simbolima u skupu znakova, na primer slovima i ciframa; • Logičke vrednosti –tip boolean - specijalni tip za predstavljanje vrednosti tačno/netačno (true/false).

 Svi tipovi podataka imaju strogo definisan opseg. Na primer, tip int je uvek dužine 32 bita, bez obzira na platformu.

Tip

Opseg vrednosti

Opis

boolean

True ili false

logički podatak

char

16-bitni Unicode znak

byte

-128 do 127

8-bitni označen ceo broj

short

-32768 do 32767

16-bitni označen ceo broj

int

-2147483648 do 2147483647

32-bitni označen ceo broj

long

- 9223372036854775808 do 9223372036854775807

64-bitni označen ceo broj

float

1,7 e –308 do 1,7 e + 308

32-bitni brojevi u pokretnom zarezu

double

3,4 e -038 do 3,4 e + 038

64-bitni brojevi u pokretnom zarezu

Celi brojevi Tipovi: Celi brojevi Brojevi u pokretnom zarezu Znakovi Logičke vrednosti

1. byte

Veličina: 1 bajt opseg: -27 do 27-1

2. short

Veličina: 2 bajta opseg: -215 do 215-1

3. int

Veličina: 4 bajta opseg: -231 do 231-1

4. long

Veličina: 8 bajtova opseg: -263 do 263-1

Brojevi u pokretnom zarezu Tipovi: Celi brojevi Brojevi u pokretnom zarezu

1. float

Veličina: 4 bajta opseg: ±1.4x10-45 do ±3.4x1038

2. double

Veličina: 8 bajtova opseg: ±4.9x10-324 do ±1.8x10308

Znakovi Logičke vrednosti

Znakovni tip Tipovi: Celi brojevi Brojevi u pokretnom zarezu Znakovi Logičke vrednosti

1. char

Veličina: 2 bajta Opseg: \u0000 - \uFFFF

Tipovi: Celi brojevi Brojevi u pokretnom zarezu Znakovi Logičke vrednosti

1. boolean

Veličina: 1 bajt Opseg: true/false

Konverzija tipova  Konverzija tipova (casting) podrazumeva dodeljivanje vrednosti jednog tipa, promenljivoj drugog tipa. Na primer, vrednost tipa int može se dodeliti promenljivoj tipa long.  Do automatske konverzije tipova de dodi samo ukoliko su ispunjena slededa dva uslova: • tipovi su međusobno kompatibilni; • odredišni tip je vedi od polaznog.  Ukoliko treba vrednosti tipa int dodeliti promenljivoj tipa byte, onda se ova konverzija nede obaviti automatski, jer je tip byte manji od tipa int. Ova vrsta konverzije se naziva konverzija skradivanjem, pošto forsira skradivanje promenljive da bi stala u odredišni tip.  Za konverziju međusobno nekompatibilnih tipova mora se upotrebiti izričito konvertovanje, čiji je opšti oblik slededi: (ciljni tip) vrednost

byte a=20; byte b=40; byte c=100; int d =a*b/c; 

S obzirom da rezultat a*b prelazi opseg prvobitnih operanada tipa byte, Java automatski unapređuje operande tipa byte ili short u tip int. byte b=50; b=b*2;



Rezultat izračunavanja izraza je sada tipa int i ne može se dodeliti promenljivoj tipa byte bez izričite konverzije tipova.



Kada možete da predvidite posledice prekoračenja opsega, trebalo bi da tipove izričito konvertujete, npr: byte b=20; b=(byte)(b*2);

Deklarisanje i inicijalizacija  Promenljive se moraju deklarisati i inicijalizovati pre njihove prve upotrebe u izrazu.  Promenljiva se može inicijalizovati dodavanjem znaka jednakosti i vrednosti, kao na primer: int a, b, c; int d=5, e, f=7; byte z=33; char x='x'.  Primer:

Aritmetički operatori

+

Sabiranje

3+5=8

* / %

Oduzimanje Množenje Delenje Modul

9–7=2 3 * 5 = 15 15 / 5 = 3 17 % 5 = 2

Dodeljivanje vrednosti

x=x+y x=x-y

x += y x -= y

x=x*y x=x/y

x *= y x /= y

Operatori poređenja ==

Jednako

!=

Nije jednako

>

Veće

<

Manje

>=

Veće ili jednako

<=

Manje ili jednako

Logički operatori ! & |

Negacija Konjukcija (AND) Disjunkcija (OR)

&& ||

Uslovna konjukcija Uslovna disjunkcija

A

B

A|B

A&B

!A

False

False

False

False

True

True

False

True

False

False

False

True

True

False

True

True

True

True

True

False

class Osoba { String ime; String prezime; }

 Deklaracija klase stvara ime tipa  Reference na objekte tog tipa mogu da se deklarišu jednostavno: Osoba petar; Važno!!! Deklaracija ne pravi objekat, ona samo deklariše referencu koja se odnosi na objekat datog tipa. Objekat MORA eksplicitno da se napravi.

Pravljenje objekata  Objekti se prave podu konstrukcionog elementa new Osoba petar; petar = new Osoba (); Date danasnjiDatum; danasnjiDatum = new Date();

Primer referenfce Osoba a = new Osoba(); Osoba b = new Osoba();

• Ako se sada izvrši naredba: b = a; u memoriji de biti slededa situacija:

Pristup poljima Osoba petar; petar = new Osoba (); petar.ime = “Patar”; petar.prezime = “Petrovic”;

class Krug { int poluPrecnik; ... }

Krug prsten; prsten = new Krug(); prsten.poluPrecnik = 5;

Referenca this  Specijalna referenca na objekat kojem se upravo pristupa  Može se koristiti unutar ne-statičkih metoda  Način da se prosledi referenca na tekudi objekat kao parametar drugim metodima: lista.dodaj(this)

Statička polja Su polja koja dele svi objekti klase. class Osoba { Strring ime; String prezime; static int redniBroj = 1; }

Osoba pera, laza, mika; pera = new Osoba (); Osoba.redniBroj= Osoba . redniBroj ++; // redniBroj = 1 laza = new Osoba (); laza. redniBroj = laza. redniBroj + 1; // redniBroj = 2 mika = new Osoba (); mika. redniBroj = mika. redniBroj + 1; // redniBroj = 3

Konstantna polja class Krug { public int x1,y1, r; public final float pi = 3.141592653; }

Metode  Klasa bez metoda ne može ništa da uradi osim da čuva podatke  Deklaracija metode sastoji se od: • zaglavlja metode • tela metode

Metode

Modifikatori metode     

Modifikatori pristupa abstract static final ...

Apstraktne metode  Apstraktna metoda se opisuje rezervisanom rečju abstract  Apstraktna metoda je metoda sa definicijom, ali bez realizacije  Apstraktna metoda može biti napravljena samo unutar apstraktne klase

Apstraktna klasa    

Klasa sa barem jednom apstraktnom metodom je apstraktna Ne mogu se kreirati objekti apstraktne klase Apstraktne klase su način da se definišu tipovi sa delimičnom implementacijom Apstraktne klase namedu određene principe u radu

Statičke metode  Statička metoda može obavljati opšti zadatak za sve objekte klase  Statička metoda može pristupati samo statičkim poljima i statičkim metodima klase  Ne postoji this referenca (nema specifičnog objekta nad kojim se radi)  Izvan klase – statičkom članu se pristupa koristedi ime klase i .

Metoda main  Uvek se mora specificirati ime klase koja pokrede aplikaciju  Sistem locira i izvršava metod main iz te klase  main mora biti public, static i void i imati jedan argument tipa String[]  Aplikacija može imati više main metoda  Svaka klasa može imati jedan main metod  Stvarno korišdeni main je specificiran imenom klase pri pokretanju programa  Preporuka: svaka klasa treba da ima main metod za potrebe testiranja

Primer: DanasnjiDatum

 Import – uvozi sve potrebne dodatne klase  java.lang – Java biblioteka koja se automatski uvozi  Klasa Date nije deo paketa java.lang  Ona se nalazi u paketu java.util

Klasa System

Out je statički objekat klase PrintStream pa ga nije potrebno praviti

java.util

Klasa Date

Prosleđivanje argumenata  Pozivanje po vrednosti  Pozivanje po referenci

Prosleđivanje argumenata  Ukoliko se kao argumenti prosleđuju promenljive primitivnog tipa, onda se prosleđuju samo vrednosti tih promenljivih. Bilo kakva promena ovih vrednosti unutar metode ne izaziva promenu originalnih promenljivih.  Ukoliko prosleđujete promenljivu koja sadrži objekat, prosleđuje se njena referenca. To znači da de bilo kakva promena nad objektom imati uticaja na originalan objekat.

Primer: Poziv argumenata

Related Documents


More Documents from "Aga Sanity Sains"

9_interfejsi
February 2021 0
2_klase I Objekti
February 2021 0
5 Niz Stek String
February 2021 0
3_kontrolne Strukture
February 2021 0
Html
February 2021 4