title: Property - Implementation of variables in Objective-C
body: <p>Well ! I got confused about the way of declaring variables &amp; implementing its properties.</p>
  
  <p>The .h File contents</p>
  
  <pre><code>@interface XYZAppDelegate : NSObject &lt;UIApplicationDelegate&gt; {
  
  }
  @property (nonatomic, retain) IBOutlet UIWindow *window;
  @property (nonatomic, retain) IBOutlet XYZViewController *viewController;
  @end
  </code></pre>
  
  <p>The .m File Contents</p>
  
  <pre><code>#import "XYZAppDelegate.h"
  #import "XYZViewController.h"
  @implementation XYZAppDelegate
  @synthesize window=_window;
  @synthesize viewController=_viewController;
  </code></pre>
  
  <p>My questions/Queries are as follows.</p>
  
  <ul>
  <li>Don't we require to declare variables if we put property ? ( Using property, we can indirectly declare variable - is it like that ? )</li>
  <li>What are the additional features other than this ? ( In coding specific )</li>
  <li>Why does everybody insist to use _ before each property accessor ? ( Other than security threats ? Has it become coding standard ? Whats the reason behind it? )</li>
  </ul>