Programeri.com

Programeski Web Blog

Form i MySQL u PHP

Juni5

Koriste se za definisanje objekta ? klasa je samo sablon na osnovu koga se kreiraju objekti. Na osnovu jedne definicije klase moguce je kreirati vise objekata. Novi objekat se kreira upotrebom kljucne rijeci new na sledeci nacin:

<ime_varijable > = new <ime_klase>(<lista_varijabli>)
<lista_varijabli> - varijable koje se predaju konstruktoru

NPR: $obj = new my_class();


class <ime_klase>
{
    <varijable>
    <konstruktor klase>
    <funkcije>
}

<varijable> - lista varijabli koje ce biti koristene unutar klase
<konstruktor klase> - funkcija istog imena kao i klasa koja se poziva kada se kreira nova instanca klase
<funkcije> - funkcije klase

4.1 Varijable


class c_test
{
    //test varijable
    var $a;
    var $b;
}

$a = new c_test(); // kreiranje objekta "a" na osnovu klase "c_test"
$b = new c_test(); // kreiranje objekta "b" na osnovu klase "c_test"

Ovde su $b i $a objekti ili instance klase c_test. Prustup varijablama se vrsi kao:


$a->a = "varijabla a"
$a->b = "varijabla b"

echo $b->a; //izlaz je "", zato sto varijable objekta b jos nisu primile //nikakvu vrijednost i zato sto nemaju nikakve veza sa objektom a.

echo "ja sam " . $a->a ; //izlaz je "ja sam varijabla a"
echo "a ja " . $a->b ; //izlaz je "a je varijabla b"

Operator “->” - koristi se za pristup clanovima klase.

4.2 Funkcije


class c_test
{
    //test varijable
    var $a;
    var $b;
    function zbir() { return $this->a + $this->b; }
    function produkt() { return $this->a*$this->b; }
    function razlika() { return $this->a-$this->b; }
    function kolicnik() {
    if ($this->b != 0){
        return $this->a/$this->b;
    }else{
        return "nije definisano" ;
    }
    function pozovi_zbir(){
        //primjer pozivanja funkcije
        return ($this->zbir());
    }
}

$this - isto kao $a->a za pristup varijabli a u objektu a, $this->ime_varijable koristi se za pristup varijabli koja je definisana u klasi, za varjable u oblasti funkcije ne treba koristiti $this.


$obj = new c_test();

$obj->a = 15;
$obj->b = 20;

echo $obj->zbir(); // izalz je 35
echo $obj->produkt(); // itd.

echo $obj->razlika; //ne radi zato sto nema "()" iza funkcije;

4.3 Konstruktori klase
Konstruktor klase je funkcija koja se poziva prilikom kreiranja nove klase. Funkcija je konstruktor ako ima isto ime kao i klasa.


class test {
    function test() { echo "testing..."; }
}

$x = new test(); //
$y = new test(); // ) ? svaki put se poziva funkcija test() klase test
$z = new test(); // /

class osoba{
   var $ime;
   var $prezime;
    function osoba ($ime ="", $prezime="") //konstruktor
    {
        $this->ime = $ime;
        $this->prezime= $prezime;
    }
}

$x = new osoba("abc","xyz"); //ovi argumenti su predati funkciji "osoba"
$y = new osoba(); //argumenti su izostavljeni pa se koriste podrazumijevane vrijednosti

echo $x->ime . "
"; //abc
echo $x->prezime; //xyz

4.4 Nasle?ivanje


class <nova_klasa> extends <osnovna_klasa>
{
}

Ovako definisana klasa nasledjuje sve osobine osnovne klase. Sve funkcije koje je imala osnovna klasa bice dostupne u novoj klasi. Ako nova klasa nema konstruktora koristi se konstruktor osnovne klase ukoliko postoji.

NPR:


class a{
    function aa(){ echo "ovo je funkcija aa klase a
"; }
}
class b extends a{
    function bb(){ echo '"ovo je funkcija bb klase b
"; }
}

Klasa b je naslijednila sve osobine klase a, klasa a sadrzi funkciju aa, a klasa b sadrzi funkciju aa i bb.


$x = new b();
$b->aa();
$b->bb();

Izlaz:
ovo je funkcija aa klase a
ovo je funkcija bb klase b

posted under Programski Jezici

Morate biti upisani da bit postavili komentar.

 

 Posljednje Mon, 13:38

mario: mozes li reci sta vraca ova rekurzivna funkcija iz c jezika long pot(long x, long y) { return x * pot(x, y - 1);

Miljand83: http://sr.boljiposao.com/sr/posao-23724/net-programer-m-z.aspx

admin: josip pita: ako mi netko moze pomoći dovrsiti software architecture document za class dijagram neka mi se javi na mail…platit cu!

svjetlana: ja bih da pitam nesto….ali ne mogu da nadjem pravi prostor za to…. Trazim nekoga ko bi mi uradio u asp ili asp.net portal za agenciju nekretninama….ako je neko zainteresovan enka mi se javi na mail svjetlanap@gmail.com thanks

» Postavi Pitanje