Sup faceci, mam proste, ale dręczące pytanie. O ile rozumiem, static
zasadniczo oznacza, że dla każdej pojedynczej instancji tej klasy ta metoda będzie taka sama, jeśli ją zmienimy, zmieni się ona dla każdego wystąpienia tej klasy, jest również znana jako Metoda klasy. Cóż, jeśli mam klasy, która implementuje toString()
metoda czarownica określonym formacie, powiedzmy:Dlaczego toString() nie może być metodą statyczną?
public String toString() {
return "(" + x + "," + y + ")";
}
Dlaczego nie może być ustawiony jako statyczny? Ponieważ ten format będzie taki sam dla każdego wystąpienia tej klasy ...?
Pomyśl o X i Y. Jeśli są to pola niestatyczne, metoda statyczna nie może uzyskać do nich dostępu. –
@ PatriciaShanahan, więc mówisz, że jeśli x i y były wartościami statycznymi, metoda toString() mogła być ustawiona jako statyczna? –
Twoje zrozumienie "statycznego" jest lekko wyłączone. "static" oznacza, że tworzone jest tylko jedno wystąpienie (przynajmniej dla zmiennych). Możesz uzyskać dostęp do "statycznych" zmiennych/metod bez tworzenia instancji obiektu (np. 'ClassName.toString()'. Nie musisz również tworzyć nowej metody dla każdego obiektu, wszystkie mają tę samą metodę, która jest dostępna – Justin