Metoda main w programach Javy
W aplikacjach Javy - poza metodami tworzonymi i definiowanymi przez programistę - występują metody,
które spełniają specjalną rolę.
Programy uruchamiane z wiersza poleceń o raz programy okienkowe wymagają metody main, od której
zaczyna się wykonywanie programu. Brak tej metody uniemożliwia uruchomienie programu.
Deklaracja funkcji main wygląda następująco:
public static void main (String args[])
{ .....
// ciało metody main
.....
}
Deklaracja metody main może wystąpić w dowolnym miejscu. Niezależnie od miejsca deklaracji,
realizacja programu zawsze rozpoczyna się od wykonania tej metody. Znaczenie poszczególnych elementów deklaracji metody:
- public - modyfikator dostępu do metody z każdej innej klasy - klasa main musi być publiczna, aby możliwe była dostępna dla wszystkich innych klas;
- static - metoda wspólna dla wszystkich obiektów klasy, dostępna nawet bez tworzenia obiektu - bez tej właściwości niemożliwe byłoby uruchomienie programu: ponieważ Java operuje tylko
obiektami, a przed uruchomieniem programu jeszcze żaden obiekt nie istnieje; dzięki modyfikatorowi static możemy odwołać się do metody main
jeszcze przed utworzeniem jakiegokolwiek obiektu, co pozwala uruchomić program i w metodzie main tworzyć konieczne obiekty;
- void - ponieważ metoda main może być wywoływana nawet z wiersza poleceń (przez wywołanie jej klasy), więc nie może zwracać żadnej wartości; dlatego jej typ musi być void;
- main - nazwa metody (należy pamiętać, że zawsze musi być pisana małymi literami);
- String args[] - wywołując klasę z wiersza poleceń możemy przekazać do metody main parametry jako łańcuchy znaków zakończonych spacją;
parametry takie zawsze traktowane są jako napisy i zapisywane w tablicy; ponieważ nigdy z góry nie wiemy czy parametry będą przekazane do metody,
czy nie, to w deklaracji należy umieścić parametr tablicy typu String.
Przykład programu wyświetlającego parametry przekazane w wierszu poleceń:
class Parametry
{
public static void main ( String tabParam[ ] )
{ for (int k = 0; k < tabParam.length; k++)
System.out.println ("Parametr " + k +
" ma wartosc : " + tabParam[k]);
}
}
Metody specjalne w apletach Javy
Java najczęściej kojarzy się z pisaniem apletów, umieszczanych na stronach WWW.
Aplety od aplikacji różni środowisko, w którym jest wykonywany, struktura i sposób wykonania.
W aplikacji działanie rozpoczyna się od metody
main.
Aplet natomiast ma swoją strukturę przedstawioną na poniższym rysunku:
Każdy aplet dziedziczy z klasy java.applet.Aplet: posiada więc własne metody oraz metody odziedziczone
z klasy bazowej java.lang.Applet. Metody odpowiedzialne za sterowanie apletu to:
init, start, stop, destroy i paint. Wszystkie one są zdefiniowane w klasie
bazowej java.lang.Applet. Tworząc własny aplet nie musimy redefiniować żadnej z tych metod.
Jeżeli jednak chcemy zmienić standardowe zachowanie apletu, to możemy przesłonić każdą z tych metod tworząc jej
redefinicje w swoim aplecie.
Funkcje realizowane przez specjalne metody apletu:
- init - jest odpowiednikiem konstruktora klasy - wywoływana tylko raz, gdy aplet jest po raz pierwszy "ładowany";
opuszczenie strony zawierającej aplet i powrót na nią nie wykonuje ponownie metody init;
- start - jest odpowiedzialna za wykonanie pracy apletu - wykonywana każdorazowo, gdy strona z apletem, staje się stroną bieżącą;
- stop - zatrzymuje pracę apletu oraz zwalnia używane przez aplet zasoby systemowe - wykonywana zawsze, gdy przeglądarka ładuje inną stronę WWW;
Jeżeli aplet redefiniuje metodę start, to powinien również redefiniować metodę stop, aby nie blokować zasobów systemu, gdy użytkownik przegląda już inna stronę WWW;
- destroy - kończy działanie apletu i zwalnia wszystkie używane zasoby systemowe - wykonywana, gdy aplet kończy swoje działanie;
jest zbyteczna, gdy metoda stop wykonuje wszystko, co jest potrzebne do zakończenia działania apletu;
destroy jest potrzebne tylko dla apletów, które powinny zwolnić zasoby zarezerwowane w metodzie init;
- paint - wykreślenia (rysowanie) apletu na stronie WWW.