Автор оригинала: Oluwabukunmi Aluko.
Что такое “это” ?
Это ключевое слово это относится к текущему объекту в методе или конструкторе. Он используется как в Java, так и в Kotlin. Наиболее распространенное использование ключевого слова “this” заключается в устранении путаницы между атрибутами класса и параметрами с тем же именем, что и свойство в классе. Это может быть либо в конструкторе , либо в методе , содержащемся в классе. Например.
public class Planet { String planetName; // This keyword used in a constructor public Planet(String givenPlanetName) { this.planetName = givenPlanetName; } // This keyword used in a method public void changePlanetName(String newPlanetName) { this.planetName = newPlanetName; } // The program starts here public static void main(String[] args) { Planet myPlanet = new Planet("Earth"); System.out.println("Welcome to Planet " + myPlanet.planetName); // Changing the planet's name myPlanet.changePlanetName("Terra"); System.out.println("Welcome to Planet " + myPlanet.planetName); } }
ПРИМЕЧАНИЕ: Вы можете запустить этот код здесь
Как разработчик Android, вы, должно быть, сталкивались с очень популярным объектом Toast.
// Show a simple toast Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show();
Приведенный выше код подразумевает, что “это” может быть передано в качестве аргумента функции. Изучив объявление объекта Toast в Android, я обнаружил, что тип для аргумента “this” имеет тип “Контекст”. Еще одно распространенное использование-это когда мы хотим загрузить другое действие. Например.
// Load the login activity screen startActivity(new Intent(this,LoginActivity.class));
Контекст в android
Из официальной документации Google следует, что Context-это абстрактный класс, реализация которого обеспечивается системой Android. Он обеспечивает доступ к ресурсам и классам, специфичным для приложений, а также к вызовам для операций на уровне приложений, таких как запуск действий, широковещательные и приемные намерения и т.д.
Давайте попробуем понять, что делает Тост. Мы просим объект тоста показать сообщение тоста, и для того, чтобы Тост показал сообщение, мы должны предоставить ему три вещи, затем мы вызываем функцию show для отображения сообщения, которое затем обрабатывается операционной системой. Эти три вещи являются:
- Форма “контекста”, т. е. реализация класса контекста (для указания состояния приложения).
- Сообщение, которое мы хотим отобразить.
- Продолжительность сообщения.
Переключение контекста в операционных системах
Согласно википедии переключение контекста-это процесс сохранения контекста/состояния процесса или потока, чтобы его можно было восстановить и возобновить выполнение в более поздний момент. Это позволяет нескольким процессам совместно использовать один процессор и является важной особенностью многозадачной операционной системы.
Из приведенного выше определения контекст можно назвать состоянием процесса в памяти. Как и следовало ожидать, работа с классами предполагает изменение состояния в разное время либо путем создания экземпляра нового класса, либо путем вызова метода в классе.
Вывод
По какой-то причине люди, новички в Android (и даже не очень новички), похоже, полностью забывают об объектно-ориентированном программировании, поэтому они зубрят коды из учебников и не понимают основных принципов того, как все работает. Ключевое слово “это” очень мощное, потому что оно содержит ссылки на состояние/контекст
Оригинал: “https://www.codementor.io/@swaggarchris/understanding-this-in-android-15m2fnw8gl”