Co to jest metoda statyczna?
Metoda programowania komputerowego zorientowana na obiekt, która jest zadeklarowana w klasie, ale nie jest zależna od żadnego szczególnego tworzenia instancji tej klasy, nazywa się metodą statyczną. Większość języków programowania zawiera słowo kluczowe statyczne w deklaracji metody tworzenia metody statycznej. Metody te należą ściśle do klasy, w której są zawarte, a nie do żadnego obiektu utworzonego z tej klasy. Są one często określane jako Metody klas .
Nazwa dosłowności klasy jest zwykle używana do dostępu do metody statycznej zamiast odnosić się do niej z nazwą instanowanego obiektu. Używanie nazw obiektów w Javie jest dopuszczalne w odniesieniu do tych metod, ale jest to silnie zniechęcone. Jeśli używana jest nazwa obiektu, osoba czytająca kod może mylić jedną z tych metod metodą instancji.
Metody statyczne są często stosowane w klasach użyteczności, które nie zależą od zmiennych instancji z jakiejkolwiek konkretnej klasy. Są również używane, gdy musi to programistaUzyskaj dostęp do metody, ale nie ma potrzeby tworzenia instancji klasy, w której jest zawarta. Klasy użyteczności zwykle nie są utworzone w obiekty. Byłoby niezwykłe, gdyby metoda użyteczności miała potrzebę modyfikacji informacji o obiekcie. Metoda z klasy java.lang.math, taka jak pow (), byłaby przykładem tego, w jaki sposób ten typ metody byłby stosowany w klasie użyteczności.
Metody instancji mogą bezpośrednio uzyskać dostęp do zmiennych instancji, zmiennych statycznych, metod instancji i metod statycznych. Metody statyczne nie mogą bezpośrednio uzyskać dostępu do zmiennych instancji i metod instancji. Ze względu na charakter metod instancji mające lepszy dostęp do członków klasy niż metody statyczne, metody instancji są rodzajem metod zwykle stosowanych w klasach regularnych.
Jedna główna wada metod statycznych występuje podczas dziedziczenia, gdy stosuje się polimorfizm. Dopóki macierzysta metoda statyczna nie jest ostateczna, to samo dzieckoMetodę statyczną można zakodować w klasie dzieci, jakby była zastąpiona. Jest to technicznie nazywane ukrywaniem zamiast nadrzędnego, ponieważ metody statycznej nie można zastąpić.
Podczas ukrywania jest używane, jeśli dostępna jest dostępna metoda statyczna przy użyciu nazwy klasy, zostanie zastosowana metoda nadrzędna. Jeśli dostępna zostanie zastąpiona metoda statyczna dziecka przy użyciu nazwy obiektu, zastosowana zostanie zastąpiona metoda dziecka. Problem występuje, gdy obiekt dziecięcy jest upastany jako rodzic. W takim przypadku wezwanie do metody statycznej Upcast Child będzie używać metody nadrzędnej zamiast oczekiwanej metody dziecka. Z prawdziwym polimorfizmem metodą dziecka byłaby aktywowana po updcast.