• Nie Znaleziono Wyników

Object vs. class (rozdzial 13 The NEURON book) Klasa (class) – definicja dla obiektow, zawierająca zbior funkcji i procedur Obiekt klasy (object) – konkretny element danej klasy (instancja)

N/A
N/A
Protected

Academic year: 2021

Share "Object vs. class (rozdzial 13 The NEURON book) Klasa (class) – definicja dla obiektow, zawierająca zbior funkcji i procedur Obiekt klasy (object) – konkretny element danej klasy (instancja)"

Copied!
5
0
0

Pełen tekst

(1)

Object vs. class (rozdzial 13 The NEURON book)

Klasa (class) – definicja dla obiektow, zawierająca zbior funkcji i procedur

Obiekt klasy (object) – konkretny element danej klasy (instancja)

Tworzenie klasy:

begintemplate classname

public name1, name2, name3, . . .

external variable1, string2, function3, template4, . . . . . . hoc code . . .

endtemplate classname

public – definiuje zmienne, procedury, funkcje widoczne z zewnatrz

external – umożliwia uzyskanie przez obiekt informacji z zewnatrz (deklaracja jest potrzebna nawet jesli zmienna jest global )

(2)

Inicjalizacja w obiekcie

Domyslne, poczatkowe wartości wszystkich zmiennych w

obiekcie klasy wynosza 0. Aby zainicjalizowac zmienne do innych wartosci, klasa musi zawierac procedure init().

Utwórzmy nastepujacy nowy plik test.hoc z templatem bez inicjalizacji:

begintemplate Foo public a

a = 5 // this is a direct command endtemplate Foo

Nastepnie wczytajmy go do Neurona i wykonajmy nastepujace polecenia:

oc>objref f

oc>f= new Foo() oc>f.a

0

W wyniku dostajemy wartosc f.a 0, a nie 5.

(3)

Inicjalizacja w obiekcie

Dodajmy do utworzonego template’a inicjalizację:

begintemplate Foo public init, a proc init() { a=5

}

endtemplate Foo

Wczytajmy do Neurona i wykonajmy:

oc>objref f

oc>f= new Foo() Oc>f.a

5

oc>f.a = 6 //przypisanie nowej wartosci oc>f.a

6

oc>f.init() //przywrocenie wartosci poczatkowej oc>f.a

5

Uwaga: NEURON jest ‘czuły’ na położenie nawiasów { }

begintemplate Foo public init, a proc init() {

a=5 }

endtemplate Foo

Proba wczytania powyzszego kodu zakonczy sie:

syntax error in test.hoc near line 3 proc init()

^ oc>

(4)

W interpreterze (OC), obiekt jest zbiorem funkcji, procedur i danych; Dane wyznaczają stan obiektu. Funkcje i procedury wyznaczają jego zachowanie. Obiektowość znacznie

zwiększa zdolność do utrzymywania koncepcyjnej kontroli nad całym kodem. Umożliwia tworzenie struktur danych, podobnie jak w C, Pascalu i Pythonie.

Obiektowość pojawiła się w NEURONie dosyć późno – po wprowadzeniu pojęcia sekcji w neuronach i dlatego

występuje w nim dużo zmiennych (np. sekcje, mechanizmy i zmienne typu range), które koncepcyjnie są traktowane jak obiekty, ale nie maja jednorodnej składni.

Programowanie obiektowe w HOC

(5)

Deklaracja obiektu:

objref name1, name2, name3, ...

Tworzenie obiektu:

objref g[3]

for i=0,2 { g[i] = new Graph() }

Używanie obiektu – dostęp do widocznych elementów obiektu

uzyskuje się poprzez ‘.’, podobnie jak do pól i metod obiektu w C++):

g[1].erase() //usuwa narysowane linie z wykresu

g[2].size(0,1,0,10) // definicja układu współrzędnych wykresu

//wartości odnoszą sie do xmin, xmax, ymin, ymax g[2].xaxis() //rysuje osie x i y

Programowanie obiektowe w HOC

Cytaty

Powiązane dokumenty

Zamykanie okna aplikacji za pomocą bezpośredniej obsługi zdarzenia zamykania okna (zamiast wykorzystania metody

Kiedy dana klasa implementuje interfejs, musi ona obsługiwać zdarzenia za pomocą metody, która jest wtedy wywoływana automatycznie, natomiast w programie trzeba ją

[r]

Na etapie oceny wniosków o dofinansowanie weryfikacji podlega potencjalna kwalifikowalność wydatków wykazanych we wniosku. Podczas realizacji projektu, ocena

Z pomocą nauczyciela wykazuje się w stopniu minimalnym umiejętnościami na ocenę dostateczną: naśladuje, odczytuje, wykonuje zadania z pomocą innych

5.1 plan kosztów (koszty pracy, koszty wspólne, koszty sprzętu, koszty amortyzacji) + 5.2 plan jakości (metryka systemu) (opisujący standardy jakie spełni system). 5.3

Jak widać z wykresów, wydatki na dobra dwóch pierwszych grup dóbr są rosnącymi funkcjami dochodów, przy czym. wzrost ich jest

ASOCJACJA KWALIFIKOWANA – ASOCJACJA Z KWALIFIKATOREM (ZBIOREM ATRYBUTÓW) POZWALA WSKAZAĆ, KTÓRY ATRYBUT JEDNEJ Z KLAS SŁUŻY DO ZAPEWNIENIA UNIKATOWOŚCI ZWIĄZKU (JEST