Co to jest to static?

0

Witam

Mozecie mi wytłumaczyc kiedy uzywa sie metod statycznych (static). Czytam rózne kursy ale jakos do mnie nie przemiawiaja.

0

Słowo kluczowe static umożliwia odwołanie się do składowej jakiejś klasy (składowej: zmiennej lub metody) bez konieczności tworzenia obiektu tej klasy. W takim wypadku musisz nazwę składowej poprzedzić kropką i nazwą tej klasy. I metoda static musi posiadać też zmienne zadeklarowane jako static.

0

O to chodzi

public class klasa {
	
	public static void main(String[] args) 
	{
		Klasa2.metoda1();
	}
}
public class Klasa2 
{
	static void metoda1() 
	{
		System.out.println("Metoda statyczna");
	}
} 
0

Utwórz sobie klasę z polem statycznym int. W konstruktorze zwiększaj o 1. Utwórz kilka obiektów i za pomocą ostatniego sprawdź wartość. Wnioski nasuną się same.

0

Tak mu gadacie, że pewnie nic nie zrozumiał :D

Łopatologicznie:
Podczas, gdy wszystkie zmienne/funkcje nie-static należą do obiektu, zmienne/funkcje static należą do klasy. Oznacza to, że jeśli masz w klasie zmienną public int a = 0 i public static int b = 0 oraz dasz w konstruktorze tej klasy:

a++;
b++;

To gdy stworzysz np. 50 obiektów, w każdym wartość a będzie równa 1, a wartość b będzie wspólna i równa 50.

Innymi słowy, zmienne static są WSPÓLNE i mają TĄ SAMĄ WARTOŚĆ dla wszystkich obiektów klasy.

0

Zgodzicie się bardziej doświadczeni programiści, że metody statyczne z wyjątkiem metody main pełnią tylko funkcję informacyjną, że pracują na polach statycznych? Wydaje mi się, że (prawie) zawsze można by usunąć i program będzie działać?

0

Metody static korzystają z pól static albo nie korzystają z żadnych pól. W tym drugim przypadku można zrezygnować ze słowa static, ale wymusi to tworzenie niepotrzebnych obiektów.

0

A czy to po prostu nie jest tak że deklaracja static (czy to pole czy metoda) mówi kompilatorowi, że utworzenie takiej metody/pola wywoływane jest tylko raz i ma się dostęp do takich metod/pól bezpośrednio z dowolnego miejsca w programie przez trzymanie tego cały czas w pamięci? Zawsze deklaracja static tworzona jest przed wywołaniem innych zmiennych i obiektów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1