11. Klase

Na klase se može gledati kao na predloške za objekte. One opisuju funkcionalnost koje če pojedini objekti imati i podatke koje če sadržavati,no neće se raditi o konkretnom objektu. Primjer koji se koristi u večini knjiga je primjer Automobila, pa ču i ja navesti taj primjer. Ima li netko ovdje nazočni bolji primjer neka ubaci. Klasa-Auto može sadržavati opis objekta, njegove metode (na primjer: Ubrzaj i Uspori) te svojstva (MaksimalnaBrzina, KoličinaGoriva itd.). Želimo li stvoriti konkretni objekt kiji če imati svoju vrijednost za maksimalnu brzinu i količinu goriva te koji če doista i obavljti akcije ubrzavanja i usporavanja moramo stvoriti novi objekt iz klase Auto.

Evo kako se definira klasa auto:

public class Auto
 {
	//Implementacija klase
 }

Za definiranje klase koristi se ključna riječ class i ime klase, a unutar vitičastih zagrada se navodi njena implementacija. U implementaciji klase definiraju se članovi klase. To su sve metode i svojstva koje klasa ima. Klase su zasebni objekti koji u potpunosti sadržavaju svu svoju funkcionalnost i neovisni su o okolini. Krenimo sad definirati nekoliko osnovnih svojstva klase Auto:

public class Auto
   { 
      public int TrenutnaBrzina; //Cjelobrojno svojstvo za pračenje trenutne brzine
 
      public void Ubrzaj()	//metoda za ubrzanje
      {
	TrenutnaBrzina += 10;
      }
 
      public void Uspori()	//metoda za usporavanje
      {
	TrenutnaBrzina -= 10;
      }
      public void Kreni()	//metoda za kretanje
      {
        while (TrenutnaBrzina != 50) Ubrzaj(); 
      }
 
      public void Stani()	//metoda za zaustavljanje
      {
	while (TrenutnaBrzina != 0) Uspori();	
      }
 
   }

Klase služe kao predlošci za stvaranje objekata.Koriste se kao i svaki drugi
tip podataka a za deklariranje koristimo samo ime klase.

 
	//U koliko navedemo samo :
 
	Auto mojAuto;
 
	//Objekt klase auto još nije moguče koristiti iz razloga
	//jer nije još stvoren u memoriji da bismo ga stvorili koristimo
	//naredbu new pa to izgleda ovako:
 
	 mojAuto = new Auto();
 
	//e da to inače pišemo krače u jednom redu:
 
	Auto mojAuto = new Auto;
 
	//sada možemo koristiti vrijednosti svih varijabli iz objekta.
 
	Auto mojAuto = new Auto();
	mojAuto.Kreni();
	mojAuto.Ubrzaj();
	mojAuto.Stani();
	//itd.

Evo jednostavnog primjera kojim simuliramo vožnju:

 
	Auto mojAuto = new Auto();
	mojAuto.Kreni();
	mojAuto.Ubrzaj();
	Conzole.WriteLine(mojAuto.TrenutnaBrzina); //60
 	mojAuto.Stani();

Dakle šta smo to gore nadrobili? Prvo smo stvorili objekt klase Auto,pa smo
zatim pozvali njegove metode.Sve metode su definirane u samoj klasi,
pa ih zato može koristiti svaki objekt te klase.