Showing posts with label konstruktor. Show all posts
Showing posts with label konstruktor. Show all posts

Friday, December 18, 2015

Konstruktori i destruktori u C# programskom jeziku


Iako sam samo spominjao konstruktore u postu „Klase u C# programskom jeziku“, vreme je da se napiše nešto više o konstruktorima ali ujedno i da se upoznate sa destruktorima. Constructor - konstruktor je najjednostavnije rečeno prva metoda koja se izvršava kad se poziva vaša klasa, stručnije rečeno kad se stvara primerak tipa. Svaka klasa ima konstruktor čak iako ga vi ne napišete i svaki konstruktor se u C# programskom jeziku zove isto kao i klasa. Znači konstruktor je specijalna metoda. Za programere Visual Basic-a to nije tako jer se u Visal Basic-u konstruktori prave potprogramom Sub New() dok sve ostalo uglavnom vezano za konstruktore važe ista pravila. Konstruktori jesu specijalna metoda, više metoda koja ne vraća vrednost ali bez ključne reči void jer konstruktori nikada ne mogu da vraćaju vrednosti. Konstruktori služe da vi inicijalizujete podatke klase ili strukture pre upotrebe. Ali konstruktori mogu biti redefinisani da bi obezbedili namensku funkcionalnost.

 
( Konstruktori se često simbolizuju sa građevinskim konstrukcijama )

Svaka klasa ili struktura može imati jedan konstruktor, čak iako ga ne napišete ili možete imati više konstruktora, ali svi se oni zovu isto kao i klasa. Međutim, da bi se konstruktori razlikovali jedan od drugog oni moraju da imaju različite atribute. Sintaksa za konstruktor je sledeća:

public bool ime_promenjive;
public class ime_klase
{
          public ime_klase( bool ime_atributa )

          { 
                     ime_promenjive = ime_atributa; 

          }
}


Možete pomisliti da u navedenoj sintaksi postoji greška, da sam trebao napisati ime konstruktora, ali jednostavno ime konstruktora nije opcija, već kao što je rečeno ime konstruktora mora biti isto kao i ime klase. Ukoliko naletite na ovakvo pitanje u Microsoft testovima, sa ovakvom opcijom; odgovor bi morao biti tačan inače i ime konstruktora je takođe tačan odgovor.

Kako se koriste konstruktori u kodu?


Friday, December 11, 2015

Klase u C# programskom jeziku


Klasa je šablon za objekat koji opisuje vrstu i količinu podataka koje će objekat sadržavati, ali ne predstavlja ni jedan određen primerak objekta. Tačnije, klase u osnovi predstavljaju šablone iz kojih se mogu stvarati objekti. Objekti sadrže podatke i metode za manipulisanje i pristup podacima, ali klasa određuje koje podatke mora da sadrži svaki konkretan objekat iako klasa sama ne sadrži nikakve podatke. Taj konkretan objekat uglavnom u literaturi se naziva primerak ili instanca. Inače klasa kao reč je nastala prema pojmu klasifikacija. Kada pravite klasu, vi uređujte članove klase u smisleni entitet. Za razliku od stuktura, klase vam daju mnogo veću fleksibilnost i više mogućnosti s obzirom da klase podržavaju nasleđivanje. Strukture su vrednosni tip podataka dok su klase referentni tip. Klase imaju ključnu ulogu u C# programskom jeziku i kodiraju se drugačije od klasa u C++ programskom jeziku. O klasama u C++ programskom jeziku možete pogledati ovde. Rad sa klasama u C# programskom jeziku je mnogo jednostavniji.



( Diagram članova klase u C# programskom jeziku ) 


Primer iz stvarnog sveta za klasu možete zamisliti i kao svojstva koja opisuju na primer tramvaj. Tramvaj ima motor, sedišta, kočnice, ponekad i klima uređaj; može da se vozi napred i nazad. Klasa opisuje sva svojstva i radnje koje jedan tramvaj poseduje ali klasa ne predstavlja ni jedan određen tramvaj. U stvarnom svetu tramvaj bi predstavljao objekat. S obzirom da postoje različiti tramvaji, znači da postoje i različiti objekti; ali svi bi objekti tramvaj bili prepoznati kao primerci klase tramvaj. Klase opisuju svojstva i ponašanje objekta preko članova. Članovi klase mogu biti polja, svojstva, metode i događaji. Klasu pravite tako što koristite ključnu reč class. Sintaksa za pravljenje klase je sledeća:

class ime_klase
{
         članovi_klase

}


Šta je enkapsulacija?


Friday, October 16, 2015

Klase u C++ programskom jeziku – 2 deo



U prethodnom postu; možete ga pogledati ovde, sam vam predstavio jedan osnovni primer pravljenja i korišćenja klase koja je kodirana u istom fajlu vašeg programa. U poslovnom svetu to nije praksa i zato ću vam pokazati kako se pravi i poziva klasa koja je podeljena u header fajl i poseban fajl za klasu iz Visual Studio-a 2015. Ukoliko koristite neki drugi IDE, verovatno sami trebate napraviti fajlove ili je procedura nešto drugačija ili IDE odrađuje posao na svoj način. Važno je da je suština ista. U ovom postu opisujem isti program kao u prethodnom postu osim što je prepravljen i što su mu dodate neke stvari, pre svega radi pravilnije upotrebe klasa ali i dalje njihovog učenja. Kad pokrenete novi program, vi možete u prozoru Solution Explorer-a da kliknite na projekat desnim tasterom miša, zatim na Add i izaberite Class, kao na slici:


( Solution Explorer, dodavanje klase projektu )

Zatim je potrebno da izaberite C++ Class, i samo klikom na dugme Add pokrećete čarobnjaka za klase Generic C++ Class Wizard. Klasi je dovoljno dati naziv i pritisnuti dugme Finished. U našem primeru klasa se zove Animal.


( Generic C++ Class Witzard )

Čarobnjak za klase je dodao dva nova fajla u projekat; Animal.h i Animal.cpp. U fajlu Animal.h definišu se deklaracije promenjivih i funkcija dok se funkcije pišu u Animal.cpp fajlu. Kad pogledate u fajl Animal.h, možete videti da je IDE čarobnjak za wizard ubacio naziv i telo klase, ali i prazan konstruktor klase i destruktor iste. Pogledajte kod u fajlu Animal.h koji Visual Studio-a 2015 
generiše i pre nego što počnete da pišete klasu:

#pragma once

class Animal
{
public:
        Animal();
       ~Animal();

};

Šta je konstruktor, a šta je destruktor?