2012-03-09 20 views
6

Chcę zrozumieć, co oznacza słowo „statyczne” zrobić w metodzie nagłówku „writeNumbers” ?:co oznacza "statyczny" w nagłówku metody?

public class DisplayClass { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     writeNumbers(); 
    } 

    public static void writeNumbers() 
    { 
     int count; 
     for(count=1; count<=20; count++) 
     { 
      System.out.println(count); 
     } 
    } 
} 

Odpowiedz

20

Termin static oznacza, że ​​metoda jest dostępna na poziomie klasy, a więc nie wymaga utworzenia instancji obiektu przed wywołaniem.

Ponieważ writeNumbers była wywoływana z metody, która sama została static może tylko wywołać inne metody statyczne, chyba że najpierw tworzy nową instancję obiektu z DisplayClass użyciu coś jak:

DisplayClass displayClass = new DisplayClass(); 

tylko raz ten obiekt został Wywoływane mogą być wywoływane metody niestatyczne, np .:

displayClass.nonStaticMethod(); 
2

Z Oracle Java Tutorial verbatim:

Język programowania Java obsługuje metody statyczne, jak również jako zmienne statyczne. Metody statyczne, które mają modyfikator statyczny w swoich deklaracjach, powinny być wywoływane z nazwą klasy, bez potrzeby tworzenia instancji klasy ...

Nie musisz tworzyć instancji klasy użyj danej metody. Przekażesz tę metodę odpowiednimi parametrami i zwróci ona odpowiednią rzecz.

0

Statyczna informuje kompilator, że metoda nie jest powiązana z żadnymi elementami instancji klasy, w której jest zadeklarowana. Oznacza to, że metoda jest powiązana z klasą, a nie z instancją klasy.

1

Elementy statyczne należą do klasy, a nie do obiektu.

tak static method należy do klasy, do której można uzyskać bezpośredni dostęp, jak poniżej.

2

Aby wyjaśnić odpowiedź Crollstera, chciałem wskazać 2 rzeczy.

pierwsze:

Według poziomu klasy, oznacza to, że można uzyskać do niego dostęp, wpisując „DisplayClass.writeNumbers()”, na przykład w swoim pytaniu, bez konieczności używania kiedykolwiek „nowych DisplayClass();” .

drugie:

Według poziomu klasy, oznacza to również, że baza kodu nie jest kopiowany do żadnej instancji, dzięki czemu otrzymują mniejsze zużycie pamięci.