I recently came across this doubt while declaring a controller for Textfield using TextEditingController _controller;. But it then resulted in an error as follows:
The following NoSuchMethodError was thrown while calling onChanged:
The getter 'text' was called on null.
Receiver: null
Tried calling: text
Then I randomly tried using final _controller = TextEditingController();
And to my surprise, it did work as expected.
I am quite familiar with the concepts of Object Oriented Programming (coming from a JAVA background). The thing that confuses me the most is why we don't need to initialise a variable declared with the other data types (for example, String s; works, and we don't need to declare and initilise it as var s = String();).
Also I might have framed the question wrongly and might be having completely wrong concepts regarding OOP.