Metody

Obiektowy język definiowania dokumentów hipertekstowych i jego implementacja.

ObjectHTML

Wstęp - geneza, zastosowania
Opis podstawowych pojęć
    Internet
    IP
    TCP
    HTTP
    WWW
    HTML
    URL
    Pozostałe usługi
Definicje
Inne rozwiazania
    Wprowadzenie
    ASP
    JSP
    PHP
    Homesite
    Microsoft FrontPage
Projekt języka
    Struktura leksykalna
    Komentarze
    Typy atrybutów i zmiennych
    Podstawowe składowe programu
    Deklaracje
    Klasy
    Metody ->
    Atrybuty
    Grupy
        Wprowadzenie
        Definicja
    Instrukcje
        $
        [ ]
        call
        set
        append
        incr
        if
        while
        for
        currenttime
        encode
        import
        export
        grmembers
        grname
        grparent
        lastwordin
        firstwordin
        beforeword
        afterword
        query
    Wyrażenia i operatory
    file
    image
    include
    Gramatyka
Wywołanie kompilatora
Program narzędziowy makedefs
    Geneza i ogólny opis
    Uruchamianie
    Przykłady użycia
Opis implementacji
    Drzewo programu / kompilator
    Opis najważniejszych klas
Przykładowa aplikacja
Podsumowanie
Literatura

Metody

Poprzednia strona: Klasy
Nastepna strona: Atrybuty

Klasy posiadają metody, których znaczenie jest takie same jak w innych językach obiektowych [4, 5]. Wszystkie metody są wirtualne, dziedziczone i publiczne. Zawsze zwracają wartość typu napis. Dostęp do wartości zwrotnej odbywa się poprzez zmienną lokalną result dodawaną automatycznie do zbioru zmiennych lokalnych. Początkowa wartość tej zmiennej to pusty tekst.

Metody mogą posiadać parametry formalne. Nazwy parametrów są zdefiniowane w nawiasach po nazwie metody i są oddzielane przecinkami. Wszystkie parametry są przekazywane przez wartość.

Zmienne lokalne są definiowane przy pomocy instrukcji decl (por. p. 5.10.1). Po zakończeniu wykonywania wszystkich instrukcj i metody są zwalniane z pamięci.

Składnia metody jest następująca:

method iden1([iden2[,iden3[,...]]])
instrukcje
endm

gdzie iden1 jest nazwą metody, natomiast iden2, iden3 są nazwami parametrów.

W nadklasie musi istnieć redefiniowana metoda. Zapewnia to dodatkową kontrolę nazw. Składnia redefinicji metody jest następująca:

redefine iden1([iden2[,iden3[,...]]]) 
instrukcje
endr

gdzie iden1 jest nazwą redefiniowanej metody, zaś iden2, iden3 są nazwami parametrów.

Przykład definicji prostej metody zwracającej tekst i wartości parametrów:

method main(p1, p2)
	'Hello world'; nl
	$p1; sp ; $p2; nl
endm

Metody mogą być definiowane rekurencyjnie. Każde wystąpienie nazwy metody w jej treści oznacza rekurencyjne wywołanie tej metody. Przykład rekurencyjnej metody wypisującej liczby z zakresu <n,0>:

method count(loop)
	append result $loop," "
	if $loop n<= 0 then
		append result "koniec"
	else
		incr loop -1
		this.count($loop)
	endif
endm

Listopad 2000