Изучаю Android и наткнулся на непонятную мне вещь. Я давно не практиковался на Java и очень много подзабыл, так что возможно ошибка где-то на поверхности. Вернее не ошибка, а моё недопонимание. Есть абсолютно пустой проект. Работаю через Android Studio. Стандартный "Hello World!" на экране. Я данному TextView задаю android:id="@+id/text". Далее к MainActivity я просто меня Hello World на другую строку. Но делаю это через метод.
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = findViewById(R.id.text);
        textView.setText(randomText());
    }

    private String randomText(){
        return "new String";
    }
}
Вопрос: А это вообще законно? randomText() У МЕНЯ НЕ СТАТИЧЕСКИЙ! И по идеи, что бы его вызвать, мне нужен объект класса MainAcrivity. Но у меня выходит вызвать данный метод без экземпляра класса 😵🤯. Если я сделаю такую же ситуацию в IDEA в методе main, то мне укажет на "Error:(17, 20) java: non-static method randomText() cannot be referenced from a static context" Я чего-то не понимаю. Как это работает? Через неявное this? Или что? Знающие люди, подскажите пожалуйста. Или подскажите где копать и в каком направлении гуглить. Спасибо!