Zadaci za ponavljanje i provjeravanje znanja o pridjevima, sklonidbi pridjeva, odreenim i neodreenim pridjevima, vrstama pridjeva i stupnjevanju pridjeva.
Zadaci za ponavljanje i provjeravanje znanja o pridjevima, sklonidbi pridjeva, odreenim i neodreenim pridjevima, vrstama pridjeva i stupnjevanju pridjeva.
2. Programske paradigme
Programska paradigma je osnovni stil raunalnog
programiranja
Paradigme se razlikuju u konceptu i razini apstrakcije
reprezentiranja elemenata programa (kao 邸to su
funkcije, varijable, konstante, objekti...) i koracima
sastavljanja prorauna (kao 邸to su zadaci, evaluacije,
tokovi podataka...)
3. Programske paradigme
Programski jezik mo転e podr転avati vi邸e paradigmi npr.
C++ mo転e biti proceduralni ili objektno-orijentirani
4. Usporedba borilake vje邸tine
Programerska paradigma se mo転e usporediti sa
borilakim vje邸tinama (stil i oru転je sa kojim se borac
bori, mo転e se usporediti sa stilom i alatom koji
programer koristi)
5. Povijest raunalnog programiranja
Inicijalno raunala su se strojno programirala
Programiranje binarnim kodom
Programiranje putem asemblerskog jezika
Programiranje putem proceduralnih jezika - C, Basic...
Programiranje putem objektno-orijentiranih jezika
Java, C#...
..........................................................................
7. Proceduralna paradigma
Program se sastoji od niza deklaracija, naredbi
pridru転ivanja te poziva predefiniranih kao i vlastitih
potprograma
Potprogrami omoguuju smisleno strukturiranje
programa
Primjeri: Basic ili C
Problem sa ovakvim pristupom programiranju su sve
vea kompleksnost dana邸njih programa: 邸to je
program vei - te転e ga je odr転avati.
8. Objektno-orijentirana paradigma
Kod objektno orijentiranog programiranja (OOP) program
se sastoji od skupa objekata koji meusobno komuniciraju
Objekt je programski entitet koji je sposoban primati,
obraivati i slati poruke
Objektno orijentirani model je izuzetno pogodan za
opisivanje dana邸njih sustava koji se naje邸de sastoje od
jasno odvojenih, samostalnih cjelina koje meusobno
komuniciraju i razmjenjuju obraene podatke
Jedan od takvih primjera koji se naje邸de navodi je
grafiko korisniko suelje (GUI).
9. Objektno-orijentirana paradigma
Razvoj OOP-a zapoet je 60 godina pro邸log stoljeda, a
popularnost objektno orijentirane paradigme porasla je
naglo s razvojem grafikih korisnikih suelja, te razvojem
programskog jezika C++
Dodatan rast popularnosti dogodio se u 90-tima pri
razvoju raunalnih igara
Primjeri igara su: Doom III, Starcraft, Diablo, Warcraft III i
World of Warcraft
10. Osnovni temelji OOP-a
Osnovni temelji objektno orijentirane paradigme su prije
svega objekt i klasa (razred) te metode, nasljeivanje,
enkapsulacija, polimorfizam, apstrakcija i suelja.
Objekt je naziv za skup svojstava koja mo転emo objediniti
u smislenu cjelinu.
Klasa je skup pravila koja propisuju od ega je pojedini
objekt sagraen te kakva su njegova svojstva.
11. Osnovni temelji OOP-a
Konceptom objektnog programiranja uvodi se mogudnosti
definiranja novih korisnikih tipova klasa. Klase su
temelj objektno orijentiranog programiranja.
Ideja uvoenja objekata u programiranje do邸la je
analiziranjem naina na koji funkcionira stvarni svijet.
Promatanjem svijeta oko sebe dodi demo do zakljuka da
se mnoge stvari mogu vrlo jednostavno modellirati
pomodu objekata.
12. Primjer
Klasa: Automobil
Broj objekata: 10
Atributi(svojstva):
Boja, te転ina, broj
konja...
Metode: Otvori
vrata, upali
automobil, otvori
prozor, ukljui
brisae...
13. klasa i objekt
Klasa - zami邸ljena svojstva automobila
Objekt - stvarni automobili na slici
14. Osnovni temelji OOP-a
Objekti meusobno razmjenjuju informacije i tra転e
jedan od drugoga usluge. Pritom okolina objekta ni邸ta
ne mora znati o njegovom unutarnjem ustrojstvu.
Svaki objekt ima javno suelje kojim se definira
njegova suradnja s okolinom. Ono odreuje koje
informacije objekt mo転e dati, te u kojem formatu.
Takoer su definirane i sve usluge koje objekt mo転e
pru転iti.
15. Osnovni temelji OOP-a
Funkcija koja inicijalizira objekt naziva se konstruktor
Kada objekt vi邸e nije potreban posebna funkcija klasa
pod nazivom destruktor uredno e uni邸titi objekt
16. Apstrakcija
Apstrakcija je odreivanje bitnih osobina i funkcionalnosti
bez uvoenja nepotrebnih detalja ili obja邸njenja. Pomou
ovog procesa modeliraju se najva転niji elementi (atributi) i
opis pripadnog pona邸anja (metode) neke klase.
19. Enkapsulacija (uahurivanje)
Enkapsulacija je povezivanje bitnih informacija i elemenata
nekog objekta te njegovog pona邸anja (metoda) u povezane,
izolirane cjeline na nain da unutra邸nji ustroj nije vidljiv
vanjskom svijetu
1. public: elementi su dio javnog suelja klase i dostupni su
svim drugim klasama
2. private: elementi su dostupni samo klasi u kojoj su
deklarirani.
3. protected: elementi su dostupni klasi u kojem su
deklarirani i podklasama.
21. Nasljeivanje
Nasljeivanje(eng. inheritance) je tehnika kojom se
definiranje neke klase vr邸i kori邸tenjem definicije
postojee klase (koja se naziva bazna klasa)
Tako dobivena klasa naziva se izvedena klasa
Kada se pomou izvedenih klasa deklarira neki objekt,
njegove lanske funkcije i varijable postaju funkcije i
varijable koje su kreirane u baznoj klasi
22. Primjer
Kada bi imali klasu vozilo, koji bi sve njegovi atributi
bili?
Kada bi imali klasu vozilo, koje bi sve njegove
funkcije(metode) bile?
23. Primjer
using System;
public class Pravokutnik
{
public Pravokutnik()
{
Console.WriteLine("Pravokutnik konstruktor.");
}
public void povrsina(float a, float b)
{
float P = a*b;
Console.WriteLine(P);
}
public void opseg (float a, float b)
{
float O= 2*a+2*b
Console.WriteLine(O)
}
}
24. Primjer
public class Kvadrat : Pravokutnik
{
public Kvadrat()
{
Console.WriteLine("Kvadrat konstruktor");
}
public static void Main()
{
Kvadrat kvadrat = new Kvadrat();
kvadrat.povrsina(4,4)
kvadrat.opseg (2,2)
}
}
25. Nasljeivanje i konstruktor
Konstruktor slu転i da bi kreirirali objekt nekog klasa
Svaka klasa bi trebala imati svoj konstrutor
26. Polimorfizam
Polimorfizam je, uz enkapsulaciju, apstrakciju i
nasljeivanje trede va転no svojstvo koje objektno
orijentiran jezik mora podr転avati
Bez nasljeivanja nema polimorfizma, a nasljeivanje bez
polimorfizma gotovo da i nema smisla
poli mnogo, form - oblici => vi邸e oblika
27. Primjer
Neka je bazna klasa Geometrijski_lik, a izvedeni klasi
su Krug i Pravokutnik
Svaki Geometrijski_lik ima svoju povrsinu, ali se ona
za Krug izraunava na drugaiji nain nego za
Pravokutnik
Za krug je radijus * radijus * PI, a za pravokutnik je
duljina*邸irina, ali openito svojstvo svakog
geometrijskog lika je njegova povr邸ina kao 邸to je
prikazano na slici
28. Suelje
Objekt definira svoju interakciju s vanjskim svijetom kroz
funkcije koje podr転ava
Npr. gumbi na televizoru ine njegovo suelje koje odvaja
elektroniku i nain na koji je izvedena od krajnjeg
korisnika (nas), koji 転elimo gledati neki program
Bez obzira na proizvoaa televizora i nain na koji je
elektronika organizirana mi oekujemo da demo svaki
televizor modi upaliti, ugasiti, promijeniti kanal, smanjiti
ili povedati glasnodu itd
32. Osnove C# programskog jezika
C# je dizajniran da bude:
Jednostavan
Siguran
Objektno-orijentiran
Internet-centriran
Brz
33. C# jednostavnost i sigurnost
C# je jednostavan programski jezik sa samo 80
kljunih rijei i desetak tipova
Siguran je za upis koda jer debuger tra転i gre邸ke
direktno pri upisu koda, a ne samo nakon pokretanja
54. Podr転ani operacijski sustavi
Windows XP (x86) with Service Pack 3 - all editions
except Starter Edition
Windows Vista (x86 & x64) with Service Pack 2 - all
editions except Starter Edition
Windows 7 (x86 & x64)
Windows Server 2003 (x86 & x64) with Service Pack 2
Windows Server 2003 R2 (x86 & x64)
Windows Server 2008 (x86 & x64) with Service Pack 2
Windows Server 2008 R2 (x64)
55. Minimalna konfiguracija
Computer that has a 1.6GHz or faster processor
1 GB (32 Bit) or 2 GB (64 Bit) RAM (Add 512 MB if
running in a virtual machine)
3GB of available hard disk space
5400 RPM hard disk drive
DirectX 9 capable video card running at 1024 x 768 or
higher-resolution display
DVD-ROM Drive
56. Podr転ani proizvodi u Express verziji
Visual Basic Express
Visual Web Developer Express
Visual C++ Express
Visual C# Express
SQL Server Express
Express for Windows Phone
59. Nizovi kao objekt
int[] mojePoljeIntegera = new int[50];
mojePoljeIntegera[0] = 10;
mojePoljeIntegera[1] = 20;
mojePoljeIntegera[2] = 15;
mojePoljeIntegera[3] = 90;
mojePoljeIntegera[4] = 50;
mojePoljeIntegera[5] = 60;
Console.WriteLine(mojePoljeIntegera.Max().ToString());
Console.WriteLine(mojePoljeIntegera.Min().ToString());
Console.WriteLine(mojePoljeIntegera.Average().ToString());
foreach(int i in mojePoljeIntegera)
{
Console.WriteLine(i.ToString());
}
Console.ReadLine();
60. Foreach petlja
foreach (int i in mojePoljeIntegera)
{
Console.WriteLine("{0}", i);
}
foreach(int i in mojePoljeIntegera)
{
Console.WriteLine(i.ToString());
}
62. .NET framework
Jednostavnost razvoja aplikacija
Brzina razvoja aplikacija
Sigurnije aplikacije
Vi邸ejezino programiranje
64. CLR
CLR = Common Language Runtime
Aplikacija koja se vrti na Windowsima
Najva転niji dio .NET-a
65. to radi CLR?
Provjerava sigurnost
Uitava program
Ke邸ira program svako novo pokretanje je puno br転e
od inicijalnog!
Oslobaa resurse
Koristi se sakupljac smeca (engl. Garbage collector)
bri邸e objekte koji se vi邸e ne koriste
Sprjecava se pojava curenja memorije (engl. memory
leaks) esta pojava u C++-u
66. to radi CLR?
Provodi JIT (just in time compilation) kompilaciju
1. Program (npr. napisan u C#) kompilira u MSIL
(Microsoft Intermediate Language)
2. Prilikom prvog izvr邸avanja programa, k担d u - MSIL se
prevodi u strojni kod platforme to je zapravo JIT
kompilacija
3. Svako slijedece izvr邸avanje aplikacije uzima strojni k担d
iz ke邸a (cachea) ubrzanje
67. to radi CLR?
Pru転a vi邸ejezino okru転enje
CTS Common Type System (Dio CLR-a)
Nasljedivanje kroz vi邸e jezika (npr. u C# se naslijedi
klasa napravljena u VB.NET)
68. BCL (Base Class Library)
Sastoji se od stotina klasa koje developeru stoje na
raspolaganju
klasi su grupirani u prostore imena (engl. namespace)
npr:
System.Data rad s podacima
System.Collections rad s kolekcijama (skupovima
objekata)
System.IO rad s datotekama i mapama
Zamjena za Windows API
69. Prostori imena (namespace)
Pretinci u koje se smje邸taju klasi
Imaju hijerarhijsku strukturu
Na vrhu je System
70. Programski jezici u .NETu
Odabir jezika u kojem se programira je stvar stila!
Program napisan u bilo kojem jeziku na kraju postaje program u
MSIL-u
Bitno je da kompajler za 転eljeni jezik podr転ava CTS, tj. da
napisan po CLS Common Language Specification
Danas postoji podr邸ka za:
C#
VB
Eiffel
Fortran
Cobol
JScript
J#
I jo邸 mnogo drugih
71. Razvoj aplikacija u .NET-u
Visual Studio IDE
Notepad + komandna linija
Alternativna razvojna okru転enja
72. Slojevi vi邸e razine ADO.NET
U njega spadaju klasi iz System.Data prostora imena
Glavno pitanje na koje odgovara: kako dohvatiti
podatke i raditi s njima?
Dva glavna pru転atelja podataka (engl. data provider):
SQL Server pru転atelj podataka
OLEDB pru転atelj podataka
73. Slojevi vi邸e razine ASP.NET
klasi za razvoj Web aplikacija
Koristi ADO.NET i BCL kako bi stvorio vlastite klase
Njime se stvaraju tzv. Web Form stranice
Svaka Web Form stranica sastoji se od:
aspx datoteke (u njoj je HTML)
Datoteke s k担dom (npr .cs ili .vb) tzv. code behind
U VS IDE-u se koristi tzv. drag & drop za stvaranje
stranica
Npr. dovuci gumb
74. Slojevi vi邸e razine Windows
Forms
klasi za razvoj MS Windows aplikacija (tzv. rich
Windows application)
Jako dobra podr邸ka za razvoj korisnikih suelja
Glavni prostor imena je System.Windows.Forms
U VS IDE-u se koristi tzv. drag & drop za stvaranje
formi
Windows Forme su monije od Web Formi
Web Forme su ograniene na ono 邸to pru転a standardni
HTML
Windows Forme pru転aju sve ono 邸to i Windowsi
75. Slojevi vi邸e razine Web servisi
Nova i obecavajua tehnologija
Web servis je komponenta (komad k担da)
Pokrece se preko Interneta (preko HTTP-a)
Web servis se pi邸e u bilo kojem jeziku (npr. C#)
Web servisi se obavezno pokrece pomocu XML
SOAP-a
To znai da web servis napisanu u .NET-u na Windows
serveru mo転e bez problema pokrenuti neki klijent
napisan u PHP-u s UNIX-a
77. Pokretanje Visual studio-a
Pokrenite Visual Studio
Imate ikonu na radnoj povr邸ini ili idete na start-
>programs->Microsoft Visual Studio
78. Pokretanje projekta
Kada se upali Visual Studio
Odaberite padajui izbornik File->New->Project
Nakon otvaranja prozora za odabir novog projekta
odaberite C# windows projekt s lijeve strane i
odaberite console application sa desne strane te gumb
OK
81. Odabir projekta
U ovom prozoru mo転ete odabrati vrstu, naziv i lokaciju
projekta
82. Pokretanje projekta
Nakon otvaranja prozora za odabir novog projekta
odaberite C# windows projekt s lijeve strane i
odaberite console application sa desne strane, na dnu
upi邸ite naziv projekta: vjezba1
87. static void Main(string[] args)
static void Main(string[] args)
Kao funkcija Main u C programskom jeziku
void znai da funkcija nema povratnu vrijednost tj.
povratna vrijednost je NULL
static emo obraivati kasnije u predavanjima
string[] args po邸to je konzolna aplikacija, preko
command prompta mo転e primiti ulazne argumente i staviti
ih u polje args koje je tipa string
PRIMJER: naredba format c: /q
Naredba koja slu転i za formatiranje
Poziva program format sa argumentima c: i /q
argument c: znai da program formatira particiju c:
argument /q znai da se napravi brzo formatiranje
88. static void Main(string[] args)
Mi u pravilu neemo slati argumente svojim
programima, ali to mo転emo napraviti
Pravi primjer ete dobiti pri kraju drugog sata!!!
foreach (string tekst in args)
{
Console.WriteLine(tekst);
}
Console.ReadLine();
89. Hello World!
Prvi program
Umjesto naredbe printf(); mi emo koristiti metodu
konzole pod nazivom WriteLine
Upi邸ite unutar main-a:
Console
Primjetiti ete da Visual Studio predla転e 邸to mo転ete
upisati i ako je odabrano ono 邸to 転elite mo転ete dovr邸iti
bez pisanja priti邸ui tipku tab(tabulator)
Nakon upisivanja Console upi邸ite toku
Console.
90. Console
Prvo polugodi邸te emo raditi aplikacije u konzoli
Kada nakon naziva objekta(u na邸em sluaju Console)
pritisnemo toku, dobiti emo popis moguih metoda
i atributa tog objekta
Proite malo po njima te pogledajte koje sve metode i
atribute ima objekt Console
91. WriteLine
Da bi ispisali ne邸to u konzolu mo転emo koristiti metodu
npr. WriteLine kao i neke druge
Nakon odabira Console.WriteLine otvorite zagradu (
Tu emo vidjeti da metoda WriteLine ima 19 overload
mogunosti ( o tome kasnije na predavanjima)
Nakon otvaranja zagrade upi邸ite navodnike i tekst: Hello
World! te zatvorite navodnike, zatvorite zagradu i stavite
toku-zarez
Console.WriteLine("Hello World");
Nakon toga dodajte liniju Console.ReadLine();
Ta naredba e nam zadr転ati ekran kao naredba getch() u C
programskom jeziku
93. Atributi i metode
Metode e biti oznaeni ljubiastom kockicom kao
npr. SetWindowSize, dok su atributi oznaeni malim
prozorom kao npr. Title
94. Razlika u kori邸tenju
Uglavnom metode se koriste tako da se pozovu
Npr. Console.WriteLine();
One mogu i ne moraju(zavisno o metode) primati
argumente npr. Console.WriteLine(Tekst);
U prethodnoj liniji argument je string Tekst
Dok se atributi postavljaju uglavnom tako da:
Console.Title = "Naslov prozora";
Postavimo vrijednost atributa kao 邸to je npr. Title
Nekim atributima mo転emo samo pogledati vrijednost
Npr. Console.WriteLine(Console.CapsLock);
Tako bi doznali da li je pritisnuta tipka CapsLock
95. Pazite!!!!
Na tip podataka koje metode primaju kao atribute
Na tip podataka koju metoda vraa
Na tip podataka argumenta
Ako je argument int onda moze npr. biti
Console.WindowWidth = 30;
Ali kao je argument tipa ConsoleColor onda moze npr.
biti
Console.BackgroundColor = ConsoleColor.DarkCyan;
96. Zadatci
Ispi邸ite neki drugi tekst
Saznajte i isprobajte za邸to nam slu転e metode konzole:
Console.Clear();
Console.Write();
Console.Beep();
Console.ReadLine();
Console.ResetColor();
Console.SetCursorPosition(int left, int top);
Console.SetWindowSize(int width, int height);
97. Zadatci
Saznajte i isprobajte za邸to nam slu転e atributi konzole:
Console.Title
Console.BackgroundColor
Console.CapsLock
Console.ForegroundColor
Console.NumberLock
Console.WindowHeight
Console.WindowWidth
99. to je debuggiranje?
Pronala転enje gre邸aka i nedostataka u programskom
kodu
Naziv potjee od stvarnog dogaaja kod jednog od
prvih raunala Mark I dogodio se kvar u radu. Nakon
dugotrajne potrage za gre邸kom programeri su otkrili
da je kvar izazvala jedna buba koja se uvukla u
raunalo. Otada se svaka gre邸ka ili nedostatak u radu
raunala zove bug.
100. Vrste pogre邸aka kod programiranja
Sintaksne
Visual Studio e u gotovo svim situacijama pronai
pogre邸ku
formalne gre邸ke u jeziku
Semantike
Ako je program sintaksno dobar, mo転e doi do pogre邸ke
prilikom pokretanja programa
program ne radi ono za 邸to je namijenjen
Gre邸ke izuzetka
pojavljuju se prilikom kori邸tenja programa, neizbje転ne
su, a uzroci mogu biti razliiti
101. Sintaksne pogre邸ke
osnovna vrsta gre邸aka, nastaje pogre邸kom u jeziku, tj.
u pogre邸no upisanom programskom kodu (npr.
Nedostatak neke zagrade, nepravilno upisana kljuna
rije naredbe ili dr.)
Ove gre邸ke prilikom debug-iranja budu prikazane u
prozoru s popisom gre邸aka (Error list)
102. Semantike pogre邸ke
Kod njih su naredbe formalno ispravno napisane, pa ih
je te転e pronai od sintaksnih gre邸aka (ne vide se u
prozoru Error list prilikom debug-iranja)
To su gre邸ke znaenja program ne radi ono 邸to bi
trebao raditi, nego ne邸to drugo
Mogu biti uzrokovane logikim pogre邸kama u
programskom kodu ili podacima koje unese korisnik
One se vide tek prilikom izvr邸avanja programa (kada
otkrijemo da program ne radi 邸to bi trebao raditi, ali
jo邸 uvijek nije jasno 邸to treba ispraviti u programskom
kodu)
103. Gre邸ke izuzetaka
Javljaju se, kao i semantike gre邸ke, tek prilikom
izvr邸avanja programa
Izuzeci (eng. exceptions) e nastati bez obzira 邸to
programer poduzme da ih sprijei (neizbje転ne su)
Uzrok mo転e biti razliit, ponekad je u semantikim
gre邸kama, jer se logika programa ne uspije ostvariti
zbog nekih specifinih podataka koje korisnik unese
Rukovanje ovim gre邸kama (eng. Exception handling)
biti e posebno obraeno
106. Uvod u klase
Ugraene klase npr. Console
Vlastite klase npr. Tocka, Trokut, Pravokutink
107. to je tip u objektnom
programiranju?
Bit objektnog programiranja je kreiranje novih
tipova.
Ako smo kreirali tri dugmeta (OK, Cancel i Help), sva
tri nasljeuju svojstva koja ima tip button:
svojstvo visine, 邸irine
text koji e pisati na dugmetu
polo転aj dugmeta na formi,
i druga svojstva zajednika svim instancama koje
pripadaju tipu button
108. Nasljeivanje
Ta se karakteristika objektnog programiranja zove
NASLJEIVANJE.
NASLJEIVANJE je mogunost da objekti preuzimaju
sva svojstva tipa kojem pripadaju.
109. Klase
KLASA je neki tip promatranih objekata.
Klasa je adekvatna skupini ili vrsti kod biolo邸kih bia,
npr. skupina pasa, maaka, studenata, radnika,
artikala, itd. Objekt je instanca nek
1. Pas = klasa (ili skupina objekata)
Rex = instanca klase Pas (konkretan pas izklase Pas)
2. Student = klasa
Pero Peri = instanca klase Student
3. Button = klasa
OK button koji napravimo u aplikaciji = instanca klase
buttone klase, npr.
110. Kreiranje klase
Kada kreiramo neku vlastitu klasu, potrebno je
definirati:
njezina svojstva (properties) ili varijable kojima e
dodjeljivati vrijednosti (ako se radi o javnim
svojstvima, tada se koristi izraz svojstvo (eng.
property), a ako se radi o privatnim varijablama koje e
se koristiti samo u toj klasi, tada govorimo koristimo
izraz varijabla
metode koje odreuju njezino pona邸anje.
111. Kreiranje klase
Naredba za kreiranje nove klase poinje kljunom
rijei class, zatim dolazi naziv klase, zatim
deklaracija svojstava (properties) koje se definiraju za
tu klasu, te metode koje pripadaju klasi.
112. Kreiranje klase
class mojaKlasa
{
//ovdje definicija svojstava ili varijabli,
npr.
int mojaVarijabla;
}
Gornjim naredbama kreirali smo klasu pod nazivom
mojaKlasa, i njoj pripadajuu cjelobrojnu
varijablu pod nazivom mojaVarijabla kojoj e se
unutar klase mojaKlasa moi dodjeljivati vrijednosti.
113. Kreiranje objekta iz klase
class Student
{
// ovdje definiramo svojstva koja pripadaju toj klasi:
int Ocjena;
}
public void Main()
{
Student Pero = new Student();
Pero.Ocjena= 3;
}
114. Konstruktor
Naredba kojom se definira instanca neke klase izgleda
ovako: (npr. Za kreiranje instance Pero klase Student)
Student Pero = new Student();
Naredba sadr転i na kraju zagrade (), pa izgled kao da
poziva metodu.
Zapravo, pri kreiranju nove instance poziva se jedna
metoda koja se zove konstruktor (eng. constructor).
115. Konstruktor
Zadatak konstruktora je kreirati instancu (objekt)
neke klase i omoguiti da se toj instanci dodijeli
vrijednost kasnije u programu.
Nakon 邸to se konstruktorom kreira nova instanca, u
memoriji se ostavlja prostor za vrijednosnu instancu.
Ako ne specificiramo koji konstruktor pozivamo, CLR
poziva standardni (default) konstruktor kojim se
definira nova instanca klase i ne prosljeuju mu se
nikakve vrijednosti. Zato u zagradama kod ovog
standardnog konstruktora ne pi邸emo ni邸ta.
116. Konstruktor - nastavak
Ukoliko se 転eli koristiti neki vlastiti odreeni konstruktor, tada
se on mora deklarirati u programu prije samog kori邸tenja.
// konstruktor
public Vrijeme(System.DateTime dt)
{
godina = dt.Year;
mjesec = dt.Month;
dan = dt.Day;
sat = dt.Hour;
minuta = dt.Minute;
sekunda = dt.Second;
}
117. Metode
Metoda je neka funkcija koja se nalazi unutar
klase. Ona je lan (eng. member) klase.
Metode definiraju 邸to klase rade i kako se klase
pona邸aju.
Metodama koje sami kreiramo mo転emo dati
proizvoljne naziv, npr. Ispis(), Racunanje(), itd.
118. Kreiranje metoda
Kada se kreira neka metoda, ona takoer ima svoju
deklaraciju. U deklaraciji se definira tip podatka koji de
metoda vradati, zatim naziv metode i u zagradi parametre
koji de se prosljeivati metodi.
Npr. ovako: Int mojaMetoda(int velicina);
119. Kreiranje metoda
Neke metode uope ne vraaju nikakve vrijednosti.
Takve metode samo ne邸to izvode, i tada je tip metode
void, a u zagradi se ne pi邸e ni邸ta, npr. ovako:
void mojaMetoda( );
120. Operator toka (.)
Operator . koristi se:
Za pristup metodi ili atributu unutar neke klase
Primjer:
Student.Pero.Visina=175;
koristi instancu Pero klase Student, i njegovom
svojstvu Visina dodjeljuje vrijednost 175.
121. Statini lanovi
Pri kori邸tenju metode Main() vidjeli smo da naredba
sadr転i kljunu rije static:
static void Main()
Rije static znai da se ta metoda mo転e pozvati
samostalno bez prethodnog pozivanja klase tj. Mo転ete
je koristiti bez da u imate objekt te klase
122. Statini lanovi
Svojstva i metode neke klase mogu biti instance ili statini
lanovi.
Ako su instance, moraju se pozivati preko operatora . tako
da se najprije navede klasa kojoj pripadaju, npr. ako
definiramo klasu Student, i u okviru nje instancu Pero, a
zatim neku metodu Upisi() (kojom e se studenti upisivati
na fakultet), tada se ta metoda poziva:
a) ako prethodno nije definirana kao statina:
Student.Pero.Upisi();
b) ako je prethodno definirana kao statina:
Student.Upisi();
123. Kljuna rije this
Kljuna rije this odnosi se na trenutnu instancu
neke klase (ili drugog objekta).
this je skriveni pokaziva (pointer) na svaku
nestatinu metodu neke klase
124. Izrada klase toka
class Tocka
{
//ovdje dolazi deklaracija atributa i metoda
}
128. Metoda Opis()
public string Opis()
{
return "Toka ima kordinate: " + x + " i " + y;
}
Ako je x = 10 i y = 10 onda e string koji se vraa
izgledati:
Toka ima kordinate: 10 i 10
129. Klasa Math
Klasa sa matematikim metodama i atributima
Slina biblioteci math.h iz c programskog jezika
130. Metoda udaljenostOdIshodista()
public double udaljenostOdIshodista()
{
double udaljenost;
udaljenost = Math.Sqrt(Math.Pow(x, 2) +
Math.Pow(y, 2));
return udaljenost;
}
133. System.IO prostor imena
Ulaz i izlaz (Input/Output tj. I/O) odnosi se na postupke
itanja i pisanja podatka u i iz tokova (streams) i datoteka
npr. datoteka, U/I jedinica, TCP/IP utinica, meuprocesni
komunikacijski cjevovod, ...
Tri osnovna klasa:
klasi za itanje i pisanje okteta (bytes)
klasi za itanje i pisanje znakova (character)
klasi za itanje i pisanje binarnih podataka
134. Directory, DirectoryInfo, File, FileInfo
Slu転e za stvaranje, kopiranje, brisanje, premje邸tanje i
preimenovanje datoteka i direktorija, otvaranje
datoteka te za iteraciju kroz direktorije
137. klas DirectoryInfo
klas DirectoryInfo ukljuuje postupke za stvaranje,
premje邸tanje (preimenovanje) i iteraciju (enumeraciju)
kroz direktorije i poddirektorije