nendevahelisi ühendusi kindlal ajahetkel. Objektidiagrammi võib vaadata konkreetse näitena klassidiagrammi kohta, mis näitab, kuidas keerukas klassidiagramm võib väljenduda konkreetsete objektide (eksemplaride) tasemel. Kuidas klassidiagrammi objekte saab omavahel kombineerida konkreetsel ajahetkel. Objekt näidatakse klassina, mille nimi on allajoonitud, kusjuures objekti nime võib näidata või mitte näidata klassinime ees: objektinimi : klassinimi Kui objektinime ei näidata, siis allajoonitud klassinimele eelneb koolon: : klassinimi mis tähendab, et tegeldakse antud klassist nimetu objektiga. Kolmas võimalus: näidatakse ainult objektinime (allajoonitud), ilma klassinimeta: objektinimi Rekursiivne assotsiatsioon Seos (assotsiatsioon) võib ühendada klassi iseendaga, s.t. ühendatud objektid kuuluvad samasse klassi. Klassi seost iseendaga nimetakse rekursiivseks assotsiatsiooniks, mida kasutatakse keerukates mudelites,
System.out.println("Tere"); } Siis kutsume ta välja nimepidi - fn(); Kui tal on sulgudes sisendid: public void fn(String a, int b){ System.out.println("Tere"); } Siis anname need talle kaasa: fn("hei", 5); 2) Kui kutsume välja teisest klassist välja selle funktsiooni, siis on vaja teha funktsiooni sisaldavast klassist nii öelda koopia. Selleks on reegel: [Klassinimi] [koopia nimi] = new [Klassinimi](); Ehk, kui funktsioon asub klassis nimega "Limbo" ja meie tahame välja kutsuda selle funktsiooni oma Main klassis, siis kirjutame Maini: Limbo a = new Limbo(); Nõnda teeme koopia, anname sellele nime a, ja kutsume välja nii: a.fn() või a.fn("heipsa", 9);, olenevalt sellest, kas ja mis tüüpi sisendeid see funktsioon tahab saada. TEADMISEKS! Kui funktsioon tagastab mingi väärtuse, siis võime me selle väärtuse omistada
Supplier
funktsioon(3) # muutuja nr väärtuseks saab 3 funktsioon() # parameeter on sisestamata, muutuja nr väärtuseks saab 5 Veahaldus Vigade püüdmiseks on olemas ka teistest keeltest tuttav käsklus try. Kuid erinevalt PHP-st ja JavaScriptist, kus käsule try järgneb catch, moodustavad Pythonis sama paari käsklused try ja except. try: a = 5/0 # tekib viga, kuna nulliga ei saa jagada except: print u"ilmus viga!" Klassid Klasside defineerimiseks on käsklus class class KlassiNimi([Esivanem]): omadus = väärtus def meetod(self [, parameetrid]): tee_midagi() Esivanem on mõni muu klass, mida loodav klass laiendab ning millelt pärib selle olemasolevad omadused ja meetodid. Klassi kõikide meetodite puhul tuleb esimeseks sisendparameetriks määrata eriväärtuse self, mis on viit klassist loodud objekti juurde. Kui võrrelda näiteks PHP klasside defineerimisega, siis PHP's
andmebaasis paikneva toodete tabeli ning lohistame disainerisse: Vajadusel saate lohistada sellele skeemile tabeleid juurde ning määrata keerukamaid meetodeid nii andmete leidmiseks kui muutmiseks. Samas kui teile piisab sellisest lihtsustatud ligipääsust siis võite selle klassi ära salvestada ja hakata teda kasutama andmetega manipuleerimisel. Selles disainerivaates näete te selle klassi graafilist kuju. Klassi tegelik kood paikneb selle disainifaili taba olevas koodifailis <klassinimi>.designer.cs Lisaks on seal ka fail <klassinimi>.dbml.layout, milles on XML kujul see sama graafiline vaade teie loodud klassile. Visates kiire pilgu loodud koodile võib selles välja lugeda, et tegemist on maskeeringuga, kus klass Toode maskeerib ära andebaasis oleva tabeli Toode, koos kõigi selle tabeli omaduste ja muutmisvõimalustega ning klass ToodeDataContext on andmeallikas LINQ päringute tegemiseks, mis kasutab seda maskeeritud Toode tabelit.
paikneva toodete tabeli ning lohistame disainerisse: Vajadusel saate lohistada sellele skeemile tabeleid juurde ning määrata keerukamaid meetodeid nii andmete leidmiseks kui muutmiseks. Samas kui teile piisab sellisest lihtsustatud ligipääsust siis võite selle klassi ära salvestada ja hakata teda kasutama andmetega manipuleerimisel. Selles disainerivaates näete te selle klassi graafilist kuju. Klassi tegelik kood paikneb selle disainifaili taba olevas koodifailis <klassinimi>.designer.cs Lisaks on seal ka fail <klassinimi>.dbml.layout, milles on XML kujul see sama graafiline vaade teie loodud klassile. Visates kiire pilgu loodud koodile võib selles välja lugeda, et tegemist on maskeeringuga, kus klass Toode maskeerib ära andebaasis oleva tabeli Toode, koos kõigi selle tabeli omaduste ja muutmisvõimalustega ning klass ToodeDataContext on andmeallikas LINQ päringute tegemiseks, mis kasutab seda maskeeritud Toode tabelit. #pragma warning disable 1591