title: why angular2 component constructor parameters must be provided
body: <p>I am brand new to Angular. When I am doing the Heros tutorial, I noticed type of component constructor parameters must be a dependency. In other words, I must include it in providers array.</p>
  
  <p>For example: </p>
  
  <pre><code>import { SomeServiceClass } from '...';
  @Component({
    ...
  })
  export class MyComponent implements OnInit {
  
    constructor(input1: SomeServiceClass) { }
  
    ngOnInit() {
    }
  }
  </code></pre>
  
  <p>This code is not going to work unless I include SomeServiceClass in providers array. I tried <code>input1: string</code>. It doesn't work neither! I believe it is totally valid typescript code. The problem must be the way angular2 instantiates the component classes.</p>
  
  <p><strong>Question 1</strong>: How are component classed actually instantiated by Angular?</p>
  
  <p>And, since I never instantiate service class, I can't imagine which service class instance is passed to component constructor. </p>
  
  <p><strong>Question 2</strong>: Does angular create one instance of service to be used by every component or it generates one instance for each component?</p>