title: I really need help to understand the nature of Static method
body: <p>When a instance function being declare Static, does that mean that it can't return a new instance of another object?
  Aren't the purpose of the Static keyword is to save the memory, does that mean when i call the static member, it had to return for me the EXACT object ?</p>
  <pre><code>class Provider extends InheritedWidget {
    final  bloc = Bloc();
    bool updateShouldNotify(_) =&gt; true;
  
    Provider({Key key, Widget child}) : super(key: key, child: child);
  
    static Bloc of(BuildContext context) {
      return context.dependOnInheritedWidgetOfExactType&lt;Provider&gt;().bloc;
    }
  }
  
  class SignUp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
   // This is not the same object
      final bloc = Provider.of&lt;Bloc&gt;(context);
  }
  
  
  class Login extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      // This is not the same object 
      final bloc = Provider.of&lt;Bloc&gt;(context);
  }
  
   
  </code></pre>