Присвоение переменной возвращаемого значения метода
Есть строки:
CrimeLab crimeLab = CrimeLab.get(this);
mCrimes = crimeLab.getCrimes();
Если я правильно понимаю, в первой строке происходит присвоение переменной того, что возвращает метод get(). Но в таком случае как мы вызываем с помощью этой переменной метод getCrimes(), который находится в том же классе, что и метод get()? Или в первой строке происходит что-то совсем другое?
Ответы (2 шт):
Первый метод
CrimeLab.get(this);
Является статичным методом класса. Возвращает объект класса (создает, если ранее не был создан).
Второй метод
crimeLab.getCrimes();
Является методом экземпляра класса. То есть вызываться может только из конкретного объекта.
Аналогия:
Класс Кролик.
Статичный метод bool canRun() может быть вызван как Кролик.canRun();. Нам не нужно видеть перед собой конкретного кролика, чтобы сказать, умеет ли он бегать.
Метод экземпляра класса String getName() не может быть вызван у класса, нам нужен конкретный кролик, чтобы узнать, как его зовут. То есть вызов будет:
Кролик кролик = Кролик();
String name = кролик.getName();
Вы создаете экземпляр класса CrimeLab с именем crimeLab.
Метод get возвращает объект CrimeLab.
Далее crimeLab.getCrimes() возвращает другой объект (серее всего список mCrimes), ссылку на который вы сохраняете в переменой mCrimes.