Сценарий
Давайте представим, что мы хотим разобрать String
в int
:
Неправильный путь
public static void main(String[] args) {
String asString = "1";
int asNumber = parseInt(asString); // Error
System.out.println(asNumber);
}
В этом сценарии мы (и компилятор) не знает, каков владелец метода parseInt
, и не знает, какие логики c нужно выполнить.
Правильный путь
public static void main(String[] args) {
String asString = "1";
int asNumber = Integer.parseInt(asString); // Correct
System.out.println(asNumber);
}
Теперь, мы (и компилятор) знаем, что метод parseInt
объявлен в Integer
.
Синтаксис
Вы уже знакомы с вызовом метода в экземпляре класса (obj.method()
).
Разница с Integer.parseInt()
в том, что нам не нужно создавать экземпляр Integer
для вызова метода parseInt
, потому что это stati c method .
public class Integer {
public static parseInt(String value) { /* ... */ }
}
Метод или переменная, объявленная с static
, является членом класса вместо экземпляра . Доступ к ученикам класса ClassName.member
.