Klasy statyczne w Javie

Czy istnieje coś takiego jak klasa statyczna w java?

Jakie jest znaczenie takiej klasy. Czy wszystkie metody klasy statycznej muszą być również statyczne?

Czy jest to wymagane w drugą stronę, że jeśli klasa zawiera wszystkie statyczne metody, to czy klasa też powinna być statyczna?

Do czego są dobre klasy statyczne?

Cóż, Java posiada "statyczne klasy zagnieżdżone", ale nie są one wcale takie same jak statyczne klasy C#39;s, jeśli to jest to, skąd pochodzisz. Statyczna klasa zagnieżdżona to po prostu taka, która nie posiada niejawnie odniesienia do instancji klasy zewnętrznej.

Statyczne klasy zagnieżdżone mogą mieć metody instancji i metody statyczne.

W Javie nie ma czegoś takiego jak statyczna klasa najwyższego poziomu.

Komentarze (10)

Istnieje statyczna zagnieżdżona klasa, ta [statyczna zagnieżdżona] klasa nie potrzebuje instancji klasy zamykającej, aby być instancjonowana sama.

Te klasy [statyczne zagnieżdżone] mogą uzyskać dostęp tylko do statycznych członków klasy zamykającej [ponieważ nie ma żadnego odniesienia do instancji klasy zamykającej...]

próbka kodu:

public class Test { 
  class A { } 
  static class B { }
  public static void main(String[] args) { 
    /*will fail - compilation error, you need an instance of Test to instantiate A*/
    A a = new A(); 
    /*will compile successfully, not instance of Test is needed to instantiate B */
    B b = new B(); 
  }
}
Komentarze (3)

Java ma statyczne metody, które są związane z klasami (np. java.lang.Math ma tylko statyczne metody), ale sama klasa nie jest statyczna.

Komentarze (0)