StatefulWidget,
which means this widget stores mutable state.
When the

createState() function
to create a fresh instance of

State are typically named with leading underscores to
indicate that they are private implementation details.)
When this widget’s parent rebuilds, the parent creates a new instance
of

widget property.
If the parent rebuilds and creates a new

didUpdateWidget() function, which is passed
an

setState() call.
Calling

build() function,
which means the user interface might not update to reflect
the changed state.  By managing state in this way,
you don’t need to write separate code for creating and
updating child widgets. Instead, you simply implement the

Responding to widget lifecycle events

createState() on the

initState() on the state object.
A subclass of

State can override